diff --git a/published/20190301 Emacs for (even more of) the win.md b/published/20190301 Emacs for (even more of) the win.md
new file mode 100644
index 0000000000..7da7ab6a51
--- /dev/null
+++ b/published/20190301 Emacs for (even more of) the win.md
@@ -0,0 +1,83 @@
+[#]: collector: (lujun9972)
+[#]: translator: (oneforalone)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11046-1.html)
+[#]: subject: (Emacs for (even more of) the win)
+[#]: via: (https://so.nwalsh.com/2019/03/01/emacs)
+[#]: author: (Norman Walsh https://so.nwalsh.com)
+
+Emacs 的(更多)胜利
+======
+
+
+
+我天天用 Emacs,但我却从意识到。但是每当我用 Emacs 时,它都给我带来了很多乐趣。
+
+> 如果你是个职业作家……Emacs 与其它的编辑器的相比就如皓日与群星一样。不仅更大、更亮,它轻而易举就让其他所有的东西都消失了。
+
+我用 [Emacs][1] 已有二十多年了。我用它来写几乎所有的东西(我用 [IntelliJ][2] 编辑 Scala 和 Java )。看邮件的话我是能在 Emacs 里看就在里面看。
+
+尽管我用 Emacs 已有数十年,我在新年前后才意识到,在过去十几年里,我对 Emacs 的使用几乎没有什么变化。当然,新的编辑模式出现了,我就会选一两个插件,几年前我确实是用了 [Helm][3],但大多数时候,它只是完成了我需要的所有繁重工作,日复一日,没有抱怨,也没有妨碍我。一方面,这证明了它有多好。另一方面,这是一个邀请,让我深入挖掘,看看我错过了什么。
+
+于此同时,我也决定从以下几方面改进我的工作方式:
+
+* **更好的议程管理** 我在工作中负责几个项目,这些项目有定期和临时的会议;有些我是我主持的,有些我只要参加就可以。
+
+ 我意识到我对参加会议变得有些敷衍。往会议室里一坐很简单,但实际上我是在阅读电子邮件或处理其他事情。(我强烈反对在会议中“禁止携带笔记本电脑”的这条规定,但这是另一个话题。)
+
+ 敷衍地去参加会议有几个问题。首先,这是对主持会议的人和其他参会者的不尊重。实际上这是不应该这么做的充分理由,但我还有意识到另一个问题:它掩盖了会议的成本。
+
+ 如果你在开会,但同时回复了一封电子邮件,也许修复了一个 bug,那么这个会议就没什么成本(或没那么多)。如果会议成本低廉,那么会议数量将会更多。
+
+ 我想要更少、更短的会议。我不想掩盖它们的成本,我想让开会变得很有价值,除非绝对必要,否则就干脆不要开。
+
+ 有时,开会是绝对有必要的。而且我认为一个简短的会有时候能够很快的解决问题。但是,如果我一天要开十个短会的话,那我觉得还是不要假装取得了什么效果吧。
+
+ 我决定在我参加的所有的会上做笔记。我并不是说一定要做会议记录,但是我肯定会花上几分钟。这会让我把注意力集中在开会上,而忽略其他事。
+
+* **更好的时间管理** 无论是工作的或私人的,我有很多要做和想做的事。我一直在问题列表中跟踪其中的一些,一些在保存的电子邮件线索中(Emacs 和 [Gmail][4] 中,用于一些稍微不同的提醒),还有一些在日历、手机上各种各样的“待办事项列表”和小纸片上。可能还有其他地方。
+
+ 我决定把它们放在一起。不是说我认为放到一个一致的地方就更好,而是我想完成两件事:首先,把它们都集中在一个地方,我能够更好更全面地了解我在哪里投入了更多的精力;其次,我想养成一个记录、跟踪并保存它们的习惯(习惯指“固定或规律的倾向或做法,尤指难以放弃的倾向或做法”)。
+
+* **更好的问责制** 如果你在某些科学或工程领域工作,你就会养成记笔记的习惯。唉,我没有。但我决定这么做。
+
+ 我对法律上鼓励使用装订页面或用永久记号笔涂抹并不感兴趣。我感兴趣的是养成做记录的习惯。我的目标是有一个地方记下想法和设计草图等。如果我突然有了灵感,或者我想到了一个不在测试套件中的边缘情况,我希望我的直觉是把它写在我的日志中,而不是草草写在一张小纸片上,或者自己觉得自己会记住它。
+
+这些决心让我很快或多或少指向了 [Org][6] 模式。Org 模式有一个庞大的、活跃的、忠诚的用户社区。我以前也用过它(顺带一提,我都[写过][7]关于它的文章,在几年前),我花了很长的一段时间(将 [MarkLogic 集成][8]到其中。(这在过去的一两个星期里得到了回报!)
+
+但我从没正经用过 Org 模式。
+
+我现在正在用它。我用了几分钟,我把所有要做的事情都记录下来,我还记了日记。我不确定我争论或列表它的所有功能能有多大价值,你可以通过网页快速地搜索找到很多。
+
+如果你用 Emacs,那你也应该用 Org 模式。如果没用过 Emacs,我相信你不会是第一个因 Org 模式而使用 Emacs 的人。Org 模式可以做很多。它需要一点时间来学习方法和快捷键,但我认为这是值得的。(如果你的口袋中有一台 [iOS][9] 设备,我推荐你在路上使用 [beorg][10] 来记录。)
+
+当然,我想出了如何[将 XML 从其中提取出来][11](“working out” 确实是“用 elisp 来编程”的一种有趣的魔法)然后,如何将它转换回我的博客用的标记(当然,在 Emacs 中按下一个按钮就可以做到)。这是用 Org 模式写的第一篇帖子。这也不会是最后一次。
+
+附注:生日快乐,[小博客][12]。
+
+--------------------------------------------------------------------------------
+
+via: https://so.nwalsh.com/2019/03/01/emacs
+
+作者:[Norman Walsh][a]
+选题:[lujun9972][b]
+译者:[oneforalone](https://github.com/oneforalone)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://so.nwalsh.com
+[b]: https://github.com/lujun9972
+[1]: https://en.wikipedia.org/wiki/Emacs
+[2]: https://en.wikipedia.org/wiki/IntelliJ_IDEA
+[3]: https://emacs-helm.github.io/helm/
+[4]: https://en.wikipedia.org/wiki/Gmail
+[5]: https://en.wikipedia.org/wiki/Lab_notebook
+[6]: https://en.wikipedia.org/wiki/Org-mode
+[7]: https://www.balisage.net/Proceedings/vol17/html/Walsh01/BalisageVol17-Walsh01.html
+[8]: https://github.com/ndw/ob-ml-marklogic/
+[9]: https://en.wikipedia.org/wiki/IOS
+[10]: https://beorgapp.com/
+[11]: https://github.com/ndw/org-to-xml
+[12]: https://so.nwalsh.com/2017/03/01/helloWorld
diff --git a/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md b/published/20190531 Use Firefox Send with ffsend in Fedora.md
similarity index 68%
rename from translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md
rename to published/20190531 Use Firefox Send with ffsend in Fedora.md
index 87175d5d90..e5c11d0d8d 100644
--- a/translated/tech/20190531 Use Firefox Send with ffsend in Fedora.md
+++ b/published/20190531 Use Firefox Send with ffsend in Fedora.md
@@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11042-1.html)
[#]: subject: (Use Firefox Send with ffsend in Fedora)
[#]: via: (https://fedoramagazine.org/use-firefox-send-with-ffsend-in-fedora/)
[#]: author: (Sylvia Sánchez https://fedoramagazine.org/author/lailah/)
@@ -12,19 +12,19 @@
![][1]
-_ffsend_ 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 _ffsend_ 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。
+`ffsend` 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 `ffsend` 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。
### 什么是 Firefox Send 和 ffsend?
-Firefox Send 是 Mozilla 的一个文件共享工具,它能将加密文件发送给其他用户。你可以在自己的服务器上安装 Send,也可以使用 Mozilla 托管的链接 [send.firefox.com][2]。它最大支持 1GB 的文件,链接会在可配置的下载次数(默认值为 1)或 24 小时后过期,然后会删除发送服务器上的所有文件。此工具仍_处于实验阶段_,因此不应在生产中使用或共享重要或敏感数据。
+Firefox Send 是 Mozilla 的一个文件共享工具,它能将加密文件发送给其他用户。你可以在自己的服务器上安装 Send,也可以使用 Mozilla 托管的链接 [send.firefox.com][2]。它最大支持 1GB 的文件,链接会在可配置的下载次数(默认值为 1)或 24 小时后过期,然后会删除发送服务器上的所有文件。此工具仍*处于实验阶段*,因此不应在生产中使用或共享重要或敏感数据。
-虽然 Firefox Send 本身就是工具,并且可以在 Web 中使用,但 _ffsend_ 是一个可以与脚本和参数一起使用的命令行程序。它有多种配置选项,并且可以在后台工作而无需任何人为干预。
+虽然 Firefox Send 本身就是工具,并且可以在 Web 中使用,但 `ffsend` 是一个可以与脚本和参数一起使用的命令行程序。它有多种配置选项,并且可以在后台工作而无需任何人为干预。
### 它如何工作?
-ffsend 可以上传和下载文件。远程主机可以使用 Firefox 工具或其他 Web 浏览器来下载文件。 Firefox Send 和 _ffsend_ 都不需要使用 Firefox。
+`ffsend` 可以上传和下载文件。远程主机可以使用 Firefox 工具或其他 Web 浏览器来下载文件。 Firefox Send 和 `ffsend` 都不需要使用 Firefox。
-值得一提 _ffsend_ 使用了客户端加密。这意味着文件在上传_前_被加密。链接中就有密钥,因此在共享时要小心,因为任何有链接的人都可以下载该文件。作为额外的保护,你可以使用以下参数使用密码保护文件:
+值得一提 `ffsend` 使用了客户端加密。这意味着文件在上传*前*被加密。链接中就有密钥,因此在共享时要小心,因为任何有链接的人都可以下载该文件。作为额外的保护,你可以使用以下参数使用密码保护文件:
```
ffsend password URL -p PASSWORD
@@ -34,24 +34,22 @@ ffsend password URL -p PASSWORD
还有一些值得一提的其他功能:
- * 链接到期前可配置的下载限制,范围从 1 到 20 次之间
- * 内置解压和归档功能
- * 跟踪共享文件的历史记录
- * 检查或删除共享文件
- * 文件夹也可以按原样共享,也可以作为压缩文件共享
- * 生成 QR 码,便于在手机上下载
-
-
+* 链接到期前可配置的下载限制,范围从 1 到 20 次之间
+* 内置解压和归档功能
+* 跟踪共享文件的历史记录
+* 检查或删除共享文件
+* 文件夹也可以按原样共享,也可以作为压缩文件共享
+* 生成 QR 码,便于在手机上下载
### 如何在 Fedora 中安装
-虽然 Fedora Send 可以在 Firefox 中使用而无需安装其他,但你需要安装 CLI 工具才能使用 _ffsend_。此工具在官方仓库中,因此你只需使用 _dnf_ 命令,并使用 _[sudo][3]_。
+虽然 Fedora Send 可以在 Firefox 中使用而无需安装其他,但你需要安装 CLI 工具才能使用 `ffsend`。此工具在官方仓库中,因此你只需使用 `dnf` 命令,并使用 [sudo][3]。
```
$ sudo dnf install ffsend
```
-之后,你可以在终端使用 _ffsend_。
+之后,你可以在终端使用 `ffsend`。
### 上传文件
@@ -66,7 +64,7 @@ Share link: https://send.firefox.com/download/05826227d70b9a4b/#RM_HSBq6kuyeBem
现在可以使用 “Share link” URL 轻松共享该文件。
-## 下载文件
+### 下载文件
下载文件和上传一样简单。
@@ -75,7 +73,7 @@ $ ffsend download https://send.firefox.com/download/05826227d70b9a4b/#RM_HSBq6ku
Download complete
```
-在下载之前,检查文件是否存在并获取有关它的信息会有用。 _ffsend_ 为此提供了 2 个方便的命令。
+在下载之前,检查文件是否存在并获取有关它的信息会有用。`ffsend` 为此提供了 2 个方便的命令。
```
$ ffsend exists https://send.firefox.com/download/88a6324e2a99ebb6/#YRJDh8ZDQsnZL2KZIA-PaQ
@@ -87,9 +85,9 @@ Downloads: 0 of 1
Expiry: 23h59m (86388s
```
-## 上传历史
+### 上传历史
-_ffsend_ 还提供了一种查看使用工具上传的历史记录的方法。例如,如果你用脚本上传了大量文件并且想要跟踪每个文件的下载状态,那么这非常有用。
+`ffsend` 还提供了一种查看使用工具上传的历史记录的方法。例如,如果你用脚本上传了大量文件并且想要跟踪每个文件的下载状态,那么这非常有用。
```
$ ffsend history
@@ -98,7 +96,7 @@ LINK EXPIRY
2 https://send.firefox.com/download/KZIA-PaQ 23h54m
```
-## 删除文件
+### 删除文件
另一个有用的功能是删除文件。
@@ -106,7 +104,7 @@ LINK EXPIRY
ffsend delete https://send.firefox.com/download/2d9faa7f34bb1478/#phITKvaYBjCGSRI8TJ9QNw
```
-Firefox Send 是一项很棒的服务,_ffsend_ 使得它在终端使用起来非常方便。[Gitlab 仓库[4]中有关于 _ffsend_ 的的更多示例和文档。
+Firefox Send 是一项很棒的服务,`ffsend` 使得它在终端使用起来非常方便。[Gitlab 仓库][4]中有关于 `ffsend` 的更多示例和文档。
--------------------------------------------------------------------------------
@@ -115,7 +113,7 @@ via: https://fedoramagazine.org/use-firefox-send-with-ffsend-in-fedora/
作者:[Sylvia Sánchez][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20170410 Writing a Time Series Database from Scratch.md b/published/201906/20170410 Writing a Time Series Database from Scratch.md
similarity index 100%
rename from published/20170410 Writing a Time Series Database from Scratch.md
rename to published/201906/20170410 Writing a Time Series Database from Scratch.md
diff --git a/published/20170414 5 projects for Raspberry Pi at home.md b/published/201906/20170414 5 projects for Raspberry Pi at home.md
similarity index 100%
rename from published/20170414 5 projects for Raspberry Pi at home.md
rename to published/201906/20170414 5 projects for Raspberry Pi at home.md
diff --git a/published/20180324 Memories of writing a parser for man pages.md b/published/201906/20180324 Memories of writing a parser for man pages.md
similarity index 100%
rename from published/20180324 Memories of writing a parser for man pages.md
rename to published/201906/20180324 Memories of writing a parser for man pages.md
diff --git a/published/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md b/published/201906/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md
similarity index 100%
rename from published/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md
rename to published/201906/20180416 How To Resize Active-Primary root Partition Using GParted Utility.md
diff --git a/published/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md b/published/201906/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md
similarity index 100%
rename from published/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md
rename to published/201906/20180604 BootISO - A Simple Bash Script To Securely Create A Bootable USB Device From ISO File.md
diff --git a/published/20180831 Get desktop notifications from Emacs shell commands .md b/published/201906/20180831 Get desktop notifications from Emacs shell commands .md
similarity index 100%
rename from published/20180831 Get desktop notifications from Emacs shell commands .md
rename to published/201906/20180831 Get desktop notifications from Emacs shell commands .md
diff --git a/published/20180914 A day in the life of a log message.md b/published/201906/20180914 A day in the life of a log message.md
similarity index 100%
rename from published/20180914 A day in the life of a log message.md
rename to published/201906/20180914 A day in the life of a log message.md
diff --git a/published/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md b/published/201906/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md
similarity index 100%
rename from published/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md
rename to published/201906/20190109 GoAccess - A Real-Time Web Server Log Analyzer And Interactive Viewer.md
diff --git a/published/201906/20190111 Top 5 Linux Distributions for Productivity.md b/published/201906/20190111 Top 5 Linux Distributions for Productivity.md
new file mode 100644
index 0000000000..57a17925cd
--- /dev/null
+++ b/published/201906/20190111 Top 5 Linux Distributions for Productivity.md
@@ -0,0 +1,140 @@
+[#]: collector: "lujun9972"
+[#]: translator: "qfzy1233"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-11028-1.html"
+[#]: subject: "Top 5 Linux Distributions for Productivity"
+[#]: via: "https://www.linux.com/blog/learn/2019/1/top-5-linux-distributions-productivity"
+[#]: author: "Jack Wallen https://www.linux.com/users/jlwallen"
+
+5 个最具生产力的 Linux 发行版
+======
+
+> 如果你正在寻找一个适合开发工作的完美环境,我敢说你找不到比 Pop!_OS 更好的选择。
+
+
+
+必须承认的是,这样的一个热门话题其实很难被总结的话题。为什么呢?首先,Linux 在就是一种有生产力的操作系统。由于它极强的可靠性和稳定的平台,使得完成工作变得很容易。其次为了衡量工作的效率,你需要考虑到哪项工作需要得到生产力方面的助推。是日常办公?开发类工作?学校事务?数据挖掘?或者是人力资源?你可以看到这个问题有多复杂。
+
+然而,这并不意味着某些发行版无法更好地配置将底层操作系统呈现为一个有效的平台来完成工作。恰恰相反,许多发行版在偏离生产力这条道路上越走越远,所以你不会意识到你自己处在工作的窘境中,而是继续挖掘自己的潜力在工期结束之前拼命赶上进度。这些 Linux 发行版可以帮助你化繁为简,因此或许可以减少你工作流程中的痛点。
+
+让我们来看一下这些发行版并为你找出适合你的最佳选择。为了更具条理,我按照生产力诉求把它们分成了几类。这项任务本身也是一种挑战,因为每个人在生产力提升上的需要是千差万别的。然而,我所关注的是下列的几项:
+
+ * 常规:适于那些只需要有效地完成多项工作的人。
+ * 设计:适于那些从事设计创造和图像处理的人。
+ * 开发:适于那些使用 Linux 桌面发行版来进行编程工作的人。
+ * 运维:适于那些需要一个发行版来促进其执行系统管理任务的人。
+ * 教育:适于那些需要桌面发行版可以助力他们在教育领域更高效的人。
+
+诚然,有很多很多类别的发行版可供挑选,其中的很多可能用起来十分得心应手,但这五种或许是你最为需要的。
+
+### 常规
+
+对于常规的生产力诉求来说,你不会找到比 [Ubuntu][1] 更为高效的了。在这个类别中首推 Ubuntu 最主要的原因是因为它实现了桌面操作系统、软件、服务的无缝集成。你可能会问为什么我不选择同类别的 Linux Mint 呢?因为 Ubuntu 现在默认的的桌面环境为 GNOME 桌面,而它拥有 GNOME 许多扩展程序的优势的加成(图 1)。
+
+![GNOME Clipboard][3]
+
+*图 1:运行中的 GNOME 桌面的剪切板管理工具。*
+
+这些扩展程序在提升生产力方面做了很多努力(所以 Ubuntu 比 Linux Mint 获得了更多的认可)。但是 Ubuntu 不仅仅是装了一个普通的 GNOME 桌面。事实上,他们致力于将它改进的更为轻量化、更为高效、以及用户友好度更高、开箱即用。总而言之,由于 Ubuntu 正确的融合了多种特性,开箱即用,完善的软件支持(仅对工作方面而言),这些特性使它几乎成为了生产力领域最为完美的一个平台。
+
+不管你是要写一篇文档,制作一张电子表格,写一个新的软件,开发公司的网站,设计商用的图形,管理一个服务器或是网络,抑或是在你的公司内从事人力资源管理工作,Ubuntu 都可以满足你的需求。Ubuntu 桌面发行版也并不要求你耗费很大的精力才能开始开始开展工作……它直接就能使用(并且工作的十分优秀)。最后,得益于它是基于 Debian 的,使得在 Ubuntu 上安装第三方的软件十分简便。
+
+很难不支持这一发行版独占生产力发行版列表的鳌头,尽管 Ubuntu 几乎已经成为几乎所有“某某类顶级发行版”列表的榜首。
+
+### 设计
+
+如果你正在寻求提升你的平面设计效率,你不能错过 [Fedora 设计套件][5]。这一 Fedora 衍生版是由负责 Fedora 相关的艺术作品的团队亲自操刀制作的。虽然其默认选择的应用程序并不是一个庞大的工具集合,但它所包含的工具都是创建和处理图像专用的。
+
+有了 GIMP、Inkscape、Darktable、Krita、Entangle、Blender、Pitivi、Scribus 等应用程序(图 2),你可以找到完成图像编辑工作所需要的一切。但是 Fedora 设计套件并不仅限于此。这个桌面平台还包括一堆教程,涵盖了许多已安装的应用程序。对于任何想要尽可能提高效率的人来说,这将是一些非常有用的信息。不过,我要说的是,GNOME 收藏夹中的教程并没有超乎[此页中][6]链接的内容。
+
+![Fedora Design Suite Favorites][8]
+
+*图 2:Fedora 设计套件收藏夹菜单包含了许多工具,可以让你用于图形设计。*
+
+那些使用数码相机的用户肯定会喜欢 Entangle 应用程序,它可以让你在电脑上控制单反相机。
+
+### 开发
+
+几乎所有的 Linux 发行版都是程序员的绝佳平台。然而,有一种特定的发行版脱颖而出,并超越了其他发行版,它将是你见过的用于编程类最有效率的工具之一。这个操作系统来自 [System76][9](LCTT 译注:一家美国的计算机制造商),名为 [Pop!\_OS][10]。Pop!\_OS 是专门为创作者定制的,但不是针对艺术类。相反,Pop!\_OS 面向专门从事开发、编程和软件制作的程序员。如果你需要一个既能完美的胜任开发工作又包含符合使用习惯的桌面操作系统的开发环境,Pop!\_OS 将会是你的不二选择。(图 3)
+
+可能会让你感到惊讶(考虑到这个操作系统是多么“年轻”)的是 Pop!\_OS 也是你将使用的基于 GNOME 平台的最稳定系统的之一。这意味着 Pop!\_OS 不只是为创作者和创客准备的,也是为任何想要一个可靠的操作系统的人准备的。你可以下载针对你的硬件的专门 ISO 文件,这一点是许多用户十分欣赏的。如果你有英特尔硬件,[下载][10] Intel 或 AMD 的版本。如果你的显卡是 NVIDIA,请下载该特定版本。不管怎样,你肯定会得到针对不同平台进行特殊定制的稳定版本。
+
+![Pop!_OS][12]
+
+*图 3:装有 GNOME 桌面的 Pop!_OS 一览。*
+
+有趣的是,在 Pop!\_OS 中,你不会找到太多预装的开发工具。你也不会找到 IDE 或许多其他开发工具。但是,你可以在 Pop 商店中中找到所需的所有开发工具。
+
+### 运维
+
+如果你正在寻找适合系统管理的最具生产力的发行版,[Debian][13] 将会是你的不二之选。为什么这么说呢?因为 Debian 不仅仅拥有无与伦比的可靠性,它也是众多能从苦海中将你解救出来的最好的一个发行版。Debian 是易用性和无限可能性的完美结合。最重要的是,因为它是许多其他发行版的基础,所以可以打赌,如果你需要一个任务的管理工具,那么它一定支持 Debian 系统。当然,我们讨论的是一般的系统管理任务,这意味着大多数时候你需要使用终端窗口 SSH 连接到服务器(图 4),或者在浏览器上使用网络上基于 web 的 GUI 工具。既然如此为什么还要使用一个增加复杂性的桌面呢(比如 Fedora 中的 SELinux 或 openSUSE 中的 YaST)呢?所以,应选择更为简洁易用的那一种。
+
+![Debian][15]
+
+*图 4:在 Debian 系统上通过 SSH 连接到远程服务器。*
+
+你可以选择你想要的不同的桌面(包括 GNOME、Xfce、KDE、Cinnamon、MATE、LXDE),可以确保你所使用的桌面外观最适合你的工作习惯。
+
+### 教育
+
+如果你是一名老师或学生,抑或是其他从事与教育相关工作的人士,你需要适当的工具来提高生产力。之前,有 Edubuntu 这样的版本。这一版本位列教育类相关发行版排名的前列。然而,自从 Ubuntu 14.04 版之后这一发行版就再也没有更新。还好,现在有一款基于 openSUSE 的新的以教育为基础的发行版有望夺摘得桂冠。这一改版叫做 [openSUSE:Education-Li-f-e][16](Li-f-e:Linux For Education - 图 5),它基于 openSUSE Leap 42.1 (所以它可能稍微有一点过时)。
+
+openSUSE:Education-Li-f-e 包含了以下工具:
+
+ * Brain Workshop(大脑工坊):一种基于 dual n-back 模式的大脑训练软件(LCTT 译注:dual n-back 训练是一种科学的智力训练方法,可以改善人的工作记忆和流体智力)
+ * GCompris:一种针对青少年的教育软件包
+ * gElemental:一款元素周期表查看工具
+ * iGNUit:一款通用的记忆卡片工具
+ * Little Wizard:基于 Pascal 语言的少儿编程开发环境
+ * Stellarium:天文模拟器
+ * TuxMath:数学入门游戏
+ * TuxPaint:一款少儿绘画软件
+ * TuxType:一款为少儿准备的打字入门软件
+ * wxMaxima:一个跨平台的计算机代数系统
+ * Inkscape:矢量图形编辑软件
+ * GIMP:图像处理软件(LCTT 译注:被誉为 Linux 上的 PhotoShop)
+ * Pencil:GUI 模型制作工具
+ * Hugin:全景照片拼接及 HDR 效果混合软件
+
+
+![Education][18]
+
+*图 5:openSUSE:Education-Li-f-e 发行版拥有大量的工具可以帮你在学校中变得更为高效。*
+
+同时还集成在 openSUSE:Education-Li-f-e 中的还有 [KIWI-LTSP Server][19] 。KIWI-LTSP 服务器是一个灵活的、经济高效的解决方案,旨在使全世界的学校、企业和组织能够轻松地安装和部署桌面工作站。虽然这可能不会直接帮助学生变得更具生产力,但它肯定会使教育机构在部署供学生使用的桌面时更有效率。有关配置 KIWI-LTSP 的更多信息,请查看 openSUSE [KIWI-LTSP 快速入门指南][20]。
+
+--------------------------------------------------------------------------------
+
+via: https://www.linux.com/blog/learn/2019/1/top-5-linux-distributions-productivity
+
+作者:[Jack Wallen][a]
+选题:[lujun9972][b]
+译者:[qfzy1233](https://github.com/qfzy1233)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.linux.com/users/jlwallen
+[b]: https://github.com/lujun9972
+[1]: https://www.ubuntu.com/
+[2]: /files/images/productivity1jpg
+[3]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_1.jpg?itok=yxez3X1w "GNOME Clipboard"
+[4]: /licenses/category/used-permission
+[5]: https://labs.fedoraproject.org/en/design-suite/
+[6]: https://fedoraproject.org/wiki/Design_Suite/Tutorials
+[7]: /files/images/productivity2jpg
+[8]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_2.jpg?itok=ke0b8qyH "Fedora Design Suite Favorites"
+[9]: https://system76.com/
+[10]: https://system76.com/pop
+[11]: /files/images/productivity3jpg-0
+[12]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_3_0.jpg?itok=8UkCUfsD "Pop!_OS"
+[13]: https://www.debian.org/
+[14]: /files/images/productivity4jpg
+[15]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_4.jpg?itok=c9yD3Xw2 "Debian"
+[16]: https://en.opensuse.org/openSUSE:Education-Li-f-e
+[17]: /files/images/productivity5jpg
+[18]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_5.jpg?itok=oAFtV8nT "Education"
+[19]: https://en.opensuse.org/Portal:KIWI-LTSP
+[20]: https://en.opensuse.org/SDB:KIWI-LTSP_quick_start
+[21]: https://training.linuxfoundation.org/linux-courses/system-administration-training/introduction-to-linux
diff --git a/published/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md b/published/201906/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md
similarity index 100%
rename from published/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md
rename to published/201906/20190219 5 Good Open Source Speech Recognition-Speech-to-Text Systems.md
diff --git a/published/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md b/published/201906/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md
similarity index 100%
rename from published/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md
rename to published/201906/20190308 Blockchain 2.0 - Explaining Smart Contracts And Its Types -Part 5.md
diff --git a/published/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md b/published/201906/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md
similarity index 100%
rename from published/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md
rename to published/201906/20190331 How to build a mobile particulate matter sensor with a Raspberry Pi.md
diff --git a/published/20190404 Running LEDs in reverse could cool computers.md b/published/201906/20190404 Running LEDs in reverse could cool computers.md
similarity index 100%
rename from published/20190404 Running LEDs in reverse could cool computers.md
rename to published/201906/20190404 Running LEDs in reverse could cool computers.md
diff --git a/published/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md b/published/201906/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md
similarity index 100%
rename from published/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md
rename to published/201906/20190405 Blockchain 2.0 - Ongoing Projects (The State Of Smart Contracts Now) -Part 6.md
diff --git a/published/20190409 5 Linux rookie mistakes.md b/published/201906/20190409 5 Linux rookie mistakes.md
similarity index 100%
rename from published/20190409 5 Linux rookie mistakes.md
rename to published/201906/20190409 5 Linux rookie mistakes.md
diff --git a/published/20190409 5 open source mobile apps.md b/published/201906/20190409 5 open source mobile apps.md
similarity index 100%
rename from published/20190409 5 open source mobile apps.md
rename to published/201906/20190409 5 open source mobile apps.md
diff --git a/translated/tech/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md b/published/201906/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md
similarity index 82%
rename from translated/tech/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md
rename to published/201906/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md
index 1790ac3066..1038abc8c2 100644
--- a/translated/tech/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md
+++ b/published/201906/20190409 VSCodium- 100- Open Source Version of Microsoft VS Code.md
@@ -1,16 +1,16 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11023-1.html)
[#]: subject: (VSCodium: 100% Open Source Version of Microsoft VS Code)
[#]: via: (https://itsfoss.com/vscodium/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
-VSCodium:Microsoft VS Code 的 100% 开源版本
+VSCodium:100% 开源的 VS Code
======
-_ **简介:VSCodium 是微软流行的 Visual Studio Code 编辑器的一个分支。它与 VS Code 完全相同,唯一不同的是,VSCodium 不跟踪你的使用数据。** _
+> VSCodium 是微软流行的 Visual Studio Code 编辑器的一个分支。它与 VS Code 完全相同,唯一不同的是,VSCodium 不跟踪你的使用数据。
微软的 [Visual Studio Code][1] 是一个出色的编辑器,不仅对于 Web 开发人员,也适合其他程序员。由于它的功能,它被认为是最好的开源代码编辑器之一。
@@ -18,19 +18,19 @@ _ **简介:VSCodium 是微软流行的 Visual Studio Code 编辑器的一个
但它存在一个问题,对于普通用户而言可能不是问题,但对于纯粹开源主义者而言是重要的。
-Microsoft 提供的即用二进制文件不是开源的。
+Microsoft 说提供的二进制文件是不开源的。
-由困惑么?让我解释下。
+感到困惑么?让我解释下。
VS Code 的源码是在 MIT 许可下开源的。你可以在 [GitHub][3] 上访问它。但是,[Microsoft 创建的安装包含专有的跟踪程序][4]。
此跟踪基本上用来收集使用数据并将其发送给 Microsoft 以“帮助改进其产品和服务”。如今,远程报告在软件产品中很常见。即使 [Ubuntu 也这样做,但它透明度更高][5]。
-你可以[在 VS Code 中禁用远程报告][6]但是你能完全信任微软吗?如果答案是否定的,那你有什么选择?
+你可以[在 VS Code 中禁用远程报告][6],但是你能完全信任微软吗?如果答案是否定的,那你有什么选择?
-你可以从源代码构建它,从而保持所有开源。但是[从源代码安装][7]并不总是如今最好的选择,因为我们习惯于使用二进制文件。
+你可以从源代码构建它,从而保持全都是开源的。但是如今[从源代码安装][7]并不总是最好的选择,因为我们习惯于使用二进制文件。
-另一种选择是使用 VSCodium!
+另一种选择是使用 VSCodium !
### VSCodium:100% 开源形式的 Visual Studio Code
@@ -38,7 +38,7 @@ VS Code 的源码是在 MIT 许可下开源的。你可以在 [GitHub][3] 上访
[VSCodium][9] 是微软 Visual Studio Code 的一个分支。该项目的唯一目的是为你提供现成的二进制文件,而没有 Microsoft 的远程收集代码。
-这解决了你想在没有 Microsoft 的专有代码的情况下使用 VS Code 但你不习惯从源代码构建它的问题,
+这解决了你想在去掉 Microsoft 的专有代码的情况下使用 VS Code ,而你又不习惯从源代码构建它的问题。
由于 [VSCodium 是 VS Code 的一个分支][11],它的外观和功能与 VS Code 完全相同。
@@ -80,7 +80,7 @@ sudo apt update && sudo apt install codium
你可以在它的页面上找到[其他发行版的安装说明][15]。你还应该阅读[有关从 VS Code 迁移到 VSCodium 的说明][16]。
-**你如何看待 VSCodium?**
+### 你如何看待 VSCodium?
就个人而言,我喜欢 VSCodium 的概念。说的老套一点,它的初心是好的。我认为,致力于开源的 Linux 发行版甚至可能开始将其包含在官方仓库中。
@@ -95,7 +95,7 @@ via: https://itsfoss.com/vscodium/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20190410 How we built a Linux desktop app with Electron.md b/published/201906/20190410 How we built a Linux desktop app with Electron.md
similarity index 100%
rename from published/20190410 How we built a Linux desktop app with Electron.md
rename to published/201906/20190410 How we built a Linux desktop app with Electron.md
diff --git a/published/20190411 Be your own certificate authority.md b/published/201906/20190411 Be your own certificate authority.md
similarity index 100%
rename from published/20190411 Be your own certificate authority.md
rename to published/201906/20190411 Be your own certificate authority.md
diff --git a/published/20190417 Inter-process communication in Linux- Sockets and signals.md b/published/201906/20190417 Inter-process communication in Linux- Sockets and signals.md
similarity index 100%
rename from published/20190417 Inter-process communication in Linux- Sockets and signals.md
rename to published/201906/20190417 Inter-process communication in Linux- Sockets and signals.md
diff --git a/published/20190422 4 open source apps for plant-based diets.md b/published/201906/20190422 4 open source apps for plant-based diets.md
similarity index 100%
rename from published/20190422 4 open source apps for plant-based diets.md
rename to published/201906/20190422 4 open source apps for plant-based diets.md
diff --git a/published/20190423 Edge computing is in most industries- future.md b/published/201906/20190423 Edge computing is in most industries- future.md
similarity index 100%
rename from published/20190423 Edge computing is in most industries- future.md
rename to published/201906/20190423 Edge computing is in most industries- future.md
diff --git a/published/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md b/published/201906/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md
similarity index 100%
rename from published/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md
rename to published/201906/20190423 Epic Games Store is Now Available on Linux Thanks to Lutris.md
diff --git a/published/20190423 How to identify same-content files on Linux.md b/published/201906/20190423 How to identify same-content files on Linux.md
similarity index 100%
rename from published/20190423 How to identify same-content files on Linux.md
rename to published/201906/20190423 How to identify same-content files on Linux.md
diff --git a/published/20190427 Monitoring CPU and GPU Temperatures on Linux.md b/published/201906/20190427 Monitoring CPU and GPU Temperatures on Linux.md
similarity index 100%
rename from published/20190427 Monitoring CPU and GPU Temperatures on Linux.md
rename to published/201906/20190427 Monitoring CPU and GPU Temperatures on Linux.md
diff --git a/published/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md b/published/201906/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md
similarity index 100%
rename from published/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md
rename to published/201906/20190428 Installing Budgie Desktop on Ubuntu -Quick Guide.md
diff --git a/published/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md b/published/201906/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md
similarity index 100%
rename from published/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md
rename to published/201906/20190505 How To Install-Uninstall Listed Packages From A File In Linux.md
diff --git a/published/20190508 Why startups should release their code as open source.md b/published/201906/20190508 Why startups should release their code as open source.md
similarity index 100%
rename from published/20190508 Why startups should release their code as open source.md
rename to published/201906/20190508 Why startups should release their code as open source.md
diff --git a/published/20190509 5 essential values for the DevOps mindset.md b/published/201906/20190509 5 essential values for the DevOps mindset.md
similarity index 100%
rename from published/20190509 5 essential values for the DevOps mindset.md
rename to published/201906/20190509 5 essential values for the DevOps mindset.md
diff --git a/published/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md b/published/201906/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md
similarity index 100%
rename from published/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md
rename to published/201906/20190513 How To Check Whether The Given Package Is Installed Or Not On Debian-Ubuntu System.md
diff --git a/published/20190517 10 Places Where You Can Buy Linux Computers.md b/published/201906/20190517 10 Places Where You Can Buy Linux Computers.md
similarity index 100%
rename from published/20190517 10 Places Where You Can Buy Linux Computers.md
rename to published/201906/20190517 10 Places Where You Can Buy Linux Computers.md
diff --git a/published/20190517 Using Testinfra with Ansible to verify server state.md b/published/201906/20190517 Using Testinfra with Ansible to verify server state.md
similarity index 100%
rename from published/20190517 Using Testinfra with Ansible to verify server state.md
rename to published/201906/20190517 Using Testinfra with Ansible to verify server state.md
diff --git a/published/20190520 Getting Started With Docker.md b/published/201906/20190520 Getting Started With Docker.md
similarity index 100%
rename from published/20190520 Getting Started With Docker.md
rename to published/201906/20190520 Getting Started With Docker.md
diff --git a/published/20190520 When IoT systems fail- The risk of having bad IoT data.md b/published/201906/20190520 When IoT systems fail- The risk of having bad IoT data.md
similarity index 100%
rename from published/20190520 When IoT systems fail- The risk of having bad IoT data.md
rename to published/201906/20190520 When IoT systems fail- The risk of having bad IoT data.md
diff --git a/published/20190520 Zettlr - Markdown Editor for Writers and Researchers.md b/published/201906/20190520 Zettlr - Markdown Editor for Writers and Researchers.md
similarity index 100%
rename from published/20190520 Zettlr - Markdown Editor for Writers and Researchers.md
rename to published/201906/20190520 Zettlr - Markdown Editor for Writers and Researchers.md
diff --git a/published/20190522 French IT giant Atos enters the edge-computing business.md b/published/201906/20190522 French IT giant Atos enters the edge-computing business.md
similarity index 100%
rename from published/20190522 French IT giant Atos enters the edge-computing business.md
rename to published/201906/20190522 French IT giant Atos enters the edge-computing business.md
diff --git a/published/20190522 Securing telnet connections with stunnel.md b/published/201906/20190522 Securing telnet connections with stunnel.md
similarity index 100%
rename from published/20190522 Securing telnet connections with stunnel.md
rename to published/201906/20190522 Securing telnet connections with stunnel.md
diff --git a/published/20190525 4 Ways to Run Linux Commands in Windows.md b/published/201906/20190525 4 Ways to Run Linux Commands in Windows.md
similarity index 100%
rename from published/20190525 4 Ways to Run Linux Commands in Windows.md
rename to published/201906/20190525 4 Ways to Run Linux Commands in Windows.md
diff --git a/published/20190527 20- FFmpeg Commands For Beginners.md b/published/201906/20190527 20- FFmpeg Commands For Beginners.md
similarity index 100%
rename from published/20190527 20- FFmpeg Commands For Beginners.md
rename to published/201906/20190527 20- FFmpeg Commands For Beginners.md
diff --git a/published/20190527 5 GNOME keyboard shortcuts to be more productive.md b/published/201906/20190527 5 GNOME keyboard shortcuts to be more productive.md
similarity index 100%
rename from published/20190527 5 GNOME keyboard shortcuts to be more productive.md
rename to published/201906/20190527 5 GNOME keyboard shortcuts to be more productive.md
diff --git a/published/20190527 A deeper dive into Linux permissions.md b/published/201906/20190527 A deeper dive into Linux permissions.md
similarity index 100%
rename from published/20190527 A deeper dive into Linux permissions.md
rename to published/201906/20190527 A deeper dive into Linux permissions.md
diff --git a/published/20190527 Dockly - Manage Docker Containers From Terminal.md b/published/201906/20190527 Dockly - Manage Docker Containers From Terminal.md
similarity index 100%
rename from published/20190527 Dockly - Manage Docker Containers From Terminal.md
rename to published/201906/20190527 Dockly - Manage Docker Containers From Terminal.md
diff --git a/published/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md b/published/201906/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md
similarity index 100%
rename from published/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md
rename to published/201906/20190527 How To Check Available Security Updates On Red Hat (RHEL) And CentOS System.md
diff --git a/published/20190527 How to write a good C main function.md b/published/201906/20190527 How to write a good C main function.md
similarity index 100%
rename from published/20190527 How to write a good C main function.md
rename to published/201906/20190527 How to write a good C main function.md
diff --git a/published/20190529 NVMe on Linux.md b/published/201906/20190529 NVMe on Linux.md
similarity index 100%
rename from published/20190529 NVMe on Linux.md
rename to published/201906/20190529 NVMe on Linux.md
diff --git a/published/20190530 A short primer on assemblers, compilers, and interpreters.md b/published/201906/20190530 A short primer on assemblers, compilers, and interpreters.md
similarity index 100%
rename from published/20190530 A short primer on assemblers, compilers, and interpreters.md
rename to published/201906/20190530 A short primer on assemblers, compilers, and interpreters.md
diff --git a/published/20190531 Learn Python with these awesome resources.md b/published/201906/20190531 Learn Python with these awesome resources.md
similarity index 100%
rename from published/20190531 Learn Python with these awesome resources.md
rename to published/201906/20190531 Learn Python with these awesome resources.md
diff --git a/published/20190531 Unity Editor is Now Officially Available for Linux.md b/published/201906/20190531 Unity Editor is Now Officially Available for Linux.md
similarity index 100%
rename from published/20190531 Unity Editor is Now Officially Available for Linux.md
rename to published/201906/20190531 Unity Editor is Now Officially Available for Linux.md
diff --git a/published/20190531 Why translation platforms matter.md b/published/201906/20190531 Why translation platforms matter.md
similarity index 100%
rename from published/20190531 Why translation platforms matter.md
rename to published/201906/20190531 Why translation platforms matter.md
diff --git a/published/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md b/published/201906/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md
similarity index 100%
rename from published/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md
rename to published/201906/20190604 How To Verify NTP Setup (Sync) is Working or Not In Linux.md
diff --git a/published/20190604 Kubernetes is a dump truck- Here-s why.md b/published/201906/20190604 Kubernetes is a dump truck- Here-s why.md
similarity index 100%
rename from published/20190604 Kubernetes is a dump truck- Here-s why.md
rename to published/201906/20190604 Kubernetes is a dump truck- Here-s why.md
diff --git a/published/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md b/published/201906/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md
similarity index 100%
rename from published/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md
rename to published/201906/20190604 Two Methods To Check Or List Installed Security Updates on Redhat (RHEL) And CentOS System.md
diff --git a/published/201906/20190605 How to navigate the Kubernetes learning curve.md b/published/201906/20190605 How to navigate the Kubernetes learning curve.md
new file mode 100644
index 0000000000..74c3187b50
--- /dev/null
+++ b/published/201906/20190605 How to navigate the Kubernetes learning curve.md
@@ -0,0 +1,72 @@
+[#]: collector: (lujun9972)
+[#]: translator: (wxy)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11026-1.html)
+[#]: subject: (How to navigate the Kubernetes learning curve)
+[#]: via: (https://opensource.com/article/19/6/kubernetes-learning-curve)
+[#]: author: (Scott McCarty https://opensource.com/users/fatherlinux/users/fatherlinux)
+
+如何跨越 Kubernetes 学习曲线
+======
+
+> Kubernetes 就像一辆翻斗车。它非常适合解决它所针对的问题,但你必须首先掌握其学习曲线。
+
+
+
+在[为什么说 Kubernetes 是一辆翻斗车][2]中,我谈到了一个工具如何优雅地解决它所设计用来解决的问题 —— 只是你要学会如何使用它。在本系列的第 2 部分中,我将更深入地了解 Kubernetes 的学习曲线。
+
+[Kubernetes][3] 的旅程通常从在一台主机上运行一个容器开始。你可以快速了解运行新版本软件的难易程度,与其他人分享该软件的难易程度,以及对于这些用户按照你预期方式运行它的难易程度。
+
+但是你需要:
+
+* 两个容器
+* 两个主机
+
+使用容器在端口 80 上启动一个 Web 服务器很容易,但是当你需要在端口 80 上启动第二个容器时会发生什么?当你构建生产环境时,需要容器化 Web 服务器在发生故障时转移到第二个主机时会发生什么?在任何一种情况下,这个答案简单来说就是你必须采用容器编排。
+
+当你开始处理两个容器或两个主机问题时,你将不可避免地引入了复杂性,因此,这就是一个学习曲线。这个两个服务(容器的更通用说法)或两个主机的问题已经存在了很长时间,并且由此带来了复杂性。
+
+从历史上看,这将涉及负载均衡、集群软件甚至集群文件系统。每个服务的配置逻辑都嵌入在每个系统(负载均衡、集群软件和文件系统)中。在负载平衡器后运行 60 或 70 个集群的服务是复杂的。添加另一个新服务也很复杂。更糟糕的是,撤下服务简直是一场噩梦。回想起我对生产环境中的 MySQL 和 Apache 服务器进行故障排除的日子,这些服务器的逻辑嵌入在三、四个或五个不同的地方,所有这些都采用不同的格式,让我头疼不已。
+
+Kubernetes 使用一个软件优雅地解决了所有这些问题:
+
+1. 两项服务(容器):✅
+2. 两台服务器(高可用性):✅
+3. 单一配置来源:✅
+4. 标准配置格式:✅
+5. 网络:✅
+6. 储存:✅
+7. 依赖关系(什么服务与哪些数据库对应):✅
+8. 易于配置:✅
+9. 轻松取消配置:✅(也许是 Kubernetes **最**强大的部分)
+
+等等,这样初看起来 Kubernetes 非常优雅、非常强大。 **没错。**你可以在 Kubernetes 中建模一整个微型 IT 世界。
+
+![Kubernetes business model][4]
+
+所以,是的,就像开始使用巨型翻斗车(或任何专业设备)时,有一个学习曲线。使用 Kubernetes 还有一个学习曲线,但它值得,因为你可以用一个工具解决这么多问题。如果你对学习曲线感到担忧,请仔细考虑 IT 基础架构中的所有底层网络、存储和安全问题,并设想一下今天的解决方案 —— 这并不容易。特别是当你越来越快地引入越来越多的服务时。速度是当今的目标,因此要特别考虑配置和取消配置问题。
+
+但是,不要混淆了建造或配置 Kubernetes 的学习曲线(为你的翻斗车挑选合适的挡泥板可能很难,LOL)和使用它的学习曲线。学习用如此多的不同层次(容器引擎、日志记录、监控、服务网格、存储、网络)的技术来建立自己的 Kubernetes 有很多不同的选择,还有每六个月维护每个组件的更新选择,这可能不值得投资 —— 但学会使用它绝对是值得的。
+
+我每天都与 Kubernetes 和容器泡在一起,即使这样我都很难跟踪几乎每天都在宣布的所有重大新项目。 但是,每一天我都对使用单一工具来模拟整个 IT 多个方面的运营优势感到兴奋。此外,记住 Kubernetes 已经成熟了很多,并将继续发展下去。与之前的 Linux 和 OpenStack 一样,每一层的接口和事实上的项目都将成熟并变得更容易选择。
+
+在本系列的第三篇文章中,我将深入挖掘你在驾驶 Kubernetes “卡车”之前需要了解的内容。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/kubernetes-learning-curve
+
+作者:[Scott McCarty][a]
+选题:[lujun9972][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/fatherlinux/users/fatherlinux
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/dumptruck_car_vehicle_storage_container_road.jpg?itok=TWK0CbX_ (Dump truck rounding a turn in the road)
+[2]: https://linux.cn/article-11011-1.html
+[3]: https://kubernetes.io/
+[4]: https://opensource.com/sites/default/files/uploads/developer_native_experience_-_mapped_to_traditional_1.png (Kubernetes business model)
diff --git a/published/201906/20190606 Cisco to buy IoT security, management firm Sentryo.md b/published/201906/20190606 Cisco to buy IoT security, management firm Sentryo.md
new file mode 100644
index 0000000000..302ea5e3f4
--- /dev/null
+++ b/published/201906/20190606 Cisco to buy IoT security, management firm Sentryo.md
@@ -0,0 +1,99 @@
+[#]: collector: (lujun9972)
+[#]: translator: (hopefully2333)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11035-1.html)
+[#]: subject: (Cisco to buy IoT security, management firm Sentryo)
+[#]: via: (https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html)
+[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
+
+思科收购了物联网安全管理公司 Sentryo
+======
+> 买下 Sentryo 将给思科在工业物联网的异常和实时威胁检测两方面予以支持。
+
+![IDG Worldwide][1]
+
+为了扩展自己的物联网安全管理产品,思科计划收购 Sentryo,这是一家总部位于法国的公司,Sentryo 为工业物联网提供异常检测和实时威胁检测。
+
+Sentryo 成立于 2014 年,产品包括 ICS CyberVision(一种用于资产库存、网络监控和威胁情报的平台)以及 CyberVision 网络边界传感器,这用于分析网络流量。
+
+**更多关于物联网的信息:**
+
+ * [什么是物联网?物联网如何运行?][4]
+ * [什么是边缘计算,这会如何改变我们的网络?][5]
+ * [最强的物联网公司][6]
+ * [10 个值得关注的热门物联网创业公司][7]
+ * [在物联网领域赚钱的六种方法][8]
+ * [什么是数字双胞胎技术? [以及它为什么重要]][9]
+ * [区块链,以服务为中心的网络是物联网成功的关键][10]
+ * [物联网以网络和安全作为基础][11]
+ * [构建完整的物联网网络必须优先完成][12]
+ * [什么是工业物联网?[为什么风险如此之高]][13]
+
+“我们通过思科的 IOx 应用框架将 Sentryo 的边缘传感器和我们的工业网络硬件相结合”,思科企业发展和思科投资的副总裁 Rob Salvagno 在一篇关于计划收购的博客中写道。
+
+“我们相信连接是物联网项目的基础,通过释放网络的力量,我们可以大大提高运作的效率并发现新的商业机会。随着 Sentryo 的加入,思科可以为系统控制工程师提供更加深入的资产可见度,以此来对系统进行优化,检测异常并保护他们的网络。”
+
+Gartner 对 Sentryo 的系统写道:“ICS CyberVision 产品以其所有 OT 用户都能理解的方式提供对其客户 OT 网络的可视性,而不仅仅是 IT 技术人员。随着黑客和监管机构越来越关注工业控制系统,一个组织的 OT 拥有完整的可见性是至关重要的一件事。很多的 OT 网络不仅在地理上位置分散,而且也很复杂,由成千上万的组件组成。”
+
+Frost & Sullivan 的工业分析师 Nandini Natarajan 表示,Sentryo 的 ICS CyberVision 让企业能够确保其工业运作的连续性、动态弹性和安全性,并以此预防可能的网络攻击。“它将使用标签形式的独特的 ‘通用 OT 语言’ 来自动描述资产和通信流程,以纯文本的方式描述每个资产在做什么。ICS CyberVision 可以让任何人都能立刻查看一台设备的类别和行为;它利用人工智能算法提供很多不同的分析视图,来让用户深入了解到一个典型的工业控制系统可以产生多么庞大的数据。Sentryo 可以轻松查看重要或相关的信息。”
+
+Natarajan 表示,除此之外,Sentryo 的平台使用深度数据包检测(DPI)从工业设备之间的通信数据包里提取信息。DPI 引擎通过边缘计算架构进行部署,它可以运行在 Sentryo 传感器设备上,也可以在已经安装好的网络设备上运行。因此,Sentryo 可以将可见性和网络安全特性嵌入进工业网络中,而非部署带外监控网络。
+
+Sentryo 的技术将扩大思科在物联网上的总体计划。在今年一月,思科推出了一整套的交换机、软件、开发工具和蓝图,这些东西将用于把物联网、基于意图联网的工业网络、传统信息安全、传统信息监控、应用开发支持融为一体。
+
+这个新平台可以通过思科的 DNA 中心进行管理,让客户能将他们的物联网、工业网络控制和他们的商业 IT 世界融为一体。
+
+DNA 中心是思科用于企业网络的中央管理工具,具有自动化、确保设置、结构配置、基于策略进行分割的功能。它也是该公司 IBN 计划的核心,用于主动向客户提供动态自动化实施网络和策略变更的能力,并在这个过程中确保数据的交付。IoT Field Network Director 是管理思科工业、连接网格路由器和终端的多服务网络的软件。
+
+思科物联网业务部的高级副总裁兼总经理 Liz Centoni 表示,公司希望 Sentryo 的技术能以多种方式帮助物联网客户:
+
+支持网络的被动 DPI 功能,这用于发现 IOT 和 OT 设备,并且在设备和系统之间建立起通信模式。Sentryo 的传感器可以在思科的 IOx 框架里进行本地部署,并且可以内置到这些设备运行的工业网络中,而不是添加额外的硬件。
+
+随着设备识别和通信模式的建立,思科将把 DNA 中心和身份识别服务引擎(ISE)集成到一起,以便客户能够很轻松地定义分割策略。这种集成将使 OT 团队能够利用 IT 安全团队的专业知识来保护他们的环境,而不会对运营的流程造成风险。
+
+由于这些物联网设备缺乏现代嵌入式软件和安全功能,网络分段将成为允许运作设备向合法系统进行通信的关键技术,并降低像我们看见的 WannaCry 和 Norsk Hydro 那样网络安全事件的风险。
+
+据 Crunchbase 称,Sentryo 的每年预计收入为 350 万美元,与 Cymmetria、Team8 和 Indegy 的竞争最为激烈。此次收购预期将在思科 2020 财年的第一季度 - 2019 年 10 月 26 日 - 结束前完成。思科并未详细披露此次收购的财务细节。
+
+Sentryo 是思科今年的第二次收购。思科在今年一月收购了 Singularity 公司的网络分析技术。在 2018 年,思科收购了包含 Duo security software 在内的 6 家公司。
+
+--------------------------------------------------------------------------------
+
+via: https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html
+
+作者:[Michael Cooney][a]
+选题:[lujun9972][b]
+译者:[hopefully2333](https://github.com/hopefully2333)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.networkworld.com/author/Michael-Cooney/
+[b]: https://github.com/lujun9972
+[1]: https://images.idgesg.net/images/article/2018/09/nwan_019_iiot-100771131-large.jpg
+[2]: https://www.sentryo.net/
+[3]: https://www.networkworld.com/article/3243928/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
+[4]: https://www.networkworld.com/article/3207535/internet-of-things/what-is-the-iot-how-the-internet-of-things-works.html
+[5]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
+[6]: https://www.networkworld.com/article/2287045/internet-of-things/wireless-153629-10-most-powerful-internet-of-things-companies.html
+[7]: https://www.networkworld.com/article/3270961/internet-of-things/10-hot-iot-startups-to-watch.html
+[8]: https://www.networkworld.com/article/3279346/internet-of-things/the-6-ways-to-make-money-in-iot.html
+[9]: https://www.networkworld.com/article/3280225/internet-of-things/what-is-digital-twin-technology-and-why-it-matters.html
+[10]: https://www.networkworld.com/article/3276313/internet-of-things/blockchain-service-centric-networking-key-to-iot-success.html
+[11]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html
+[12]: https://www.networkworld.com/article/3276304/internet-of-things/building-iot-ready-networks-must-become-a-priority.html
+[13]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
+[14]: https://blogs.cisco.com/news/cisco-industrial-iot-news
+[15]: https://www.globenewswire.com/news-release/2018/06/28/1531119/0/en/Sentryo-Named-a-Cool-Vendor-by-Gartner.html
+[16]: https://www.linkedin.com/pulse/industrial-internet-things-iiot-decoded-nandini-natarajan/
+[17]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
+[18]: https://www.cisco.com/c/dam/en_us/solutions/iot/ihs-report.pdf
+[19]: https://www.networkworld.com/article/3336454/cisco-goes-after-industrial-iot.html
+[20]: https://www.networkworld.com/article/3202699/what-is-intent-based-networking.html
+[21]: https://blogs.cisco.com/news/securing-the-internet-of-things-cisco-announces-intent-to-acquire-sentryo
+[22]: https://blogs.cisco.com/security/talos/wannacry
+[23]: https://www.securityweek.com/norsk-hydro-may-have-lost-40m-first-week-after-cyberattack
+[24]: https://www.crunchbase.com/organization/sentryo#section-web-traffic-by-similarweb
+[25]: https://www.facebook.com/NetworkWorld/
+[26]: https://www.linkedin.com/company/network-world
diff --git a/published/20190606 How Linux can help with your spelling.md b/published/201906/20190606 How Linux can help with your spelling.md
similarity index 100%
rename from published/20190606 How Linux can help with your spelling.md
rename to published/201906/20190606 How Linux can help with your spelling.md
diff --git a/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md b/published/201906/20190606 Kubernetes basics- Learn how to drive first.md
similarity index 57%
rename from translated/tech/20190606 Kubernetes basics- Learn how to drive first.md
rename to published/201906/20190606 Kubernetes basics- Learn how to drive first.md
index 6ead832f0d..2e93d2d5d9 100644
--- a/translated/tech/20190606 Kubernetes basics- Learn how to drive first.md
+++ b/published/201906/20190606 Kubernetes basics- Learn how to drive first.md
@@ -1,22 +1,24 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11036-1.html)
[#]: subject: (Kubernetes basics: Learn how to drive first)
[#]: via: (https://opensource.com/article/19/6/kubernetes-basics)
[#]: author: (Scott McCarty https://opensource.com/users/fatherlinux/users/fatherlinux/users/fatherlinux)
Kubernetes 基础:首先学习如何使用
======
-放弃专注于新项目,专注于获取你的 Kubernetes 翻斗车商业驾驶执照。
+
+> 不要被新项目分心,而是专注于取得你的 Kubernetes 翻斗车驾驶执照。
+
![Truck steering wheel and dash][1]
-在本系列的前两篇文章中,我解释了为何 Kubernetes [像翻斗车][2]并且要理解优雅、专业的工具,如 [Kubernetes][4](和翻斗车,起重机等)总是有[学习曲线][3]的。本文是下一步:学习如何驾驶。
+在本系列的前两篇文章中,我解释了为何 Kubernetes [像翻斗车][2],并且想要理解像 [Kubernetes][4](和翻斗车,起重机等)这样优雅、专业工具总是有[学习曲线][3]的。本文是下一步:学习如何驾驶。
-最近,我在 Reddit 上看到了一个关于[重要的 Kubernetes 项目][5]的帖子。人们似乎很想知道他们应该学习如何开始使用 Kubernetes。“驾驶翻斗车的类比”有助于确保问题保持正轨。帖子中的某个人提到你不应该运行自己的镜像仓库,除非你必须这样做,所以人们开始逐渐接受驱动 Kubernetes 而不是构建它。
+最近,我在 Reddit 上看到了一个关于[重要的 Kubernetes 项目][5]的帖子。人们似乎很想知道他们应该学习如何开始使用 Kubernetes。“驾驶翻斗车的类比”有助于确保这个问题回到轨道上去。在这个帖子中的某个人提到,除非必要,你不应该运行自己的镜像仓库,所以人们开始逐渐接受驾驭 Kubernetes 而不是构建它的想法。
-API 是 Kubernetes 的引擎和变速器。像翻斗车的方向盘、离合器、汽油和制动踏板一样,用于构建应用程序的 YAML 或 JSON 文件是机器的主要接口。当你第一次学习 Kubernetes 时,这应该是你的主要关注点。了解你的控制部件。不要被所有最新和最大的项目所左右。当你刚学会开车时,不要尝试驾驶实验性的翻斗车。相反,专注于基础知识。
+API 是 Kubernetes 的引擎和变速器。像翻斗车的方向盘、离合器、汽油和制动踏板一样,用于构建应用程序的 YAML 或 JSON 文件是机器的主要接口。当你第一次学习 Kubernetes 时,这应该是你的主要关注点。了解你的控制部件。不要分心于最新和最大的那些项目。当你刚学会开车时,不要尝试驾驶实验性的翻斗车。相反,请专注于基础知识。
### 定义状态和实际状态
@@ -26,25 +28,25 @@ API 是 Kubernetes 的引擎和变速器。像翻斗车的方向盘、离合器
人类(开发人员/系统管理员/运维人员)使用他们提交给 Kubernetes API 的 YAML/JSON 文件指定定义的状态。然后,Kubernetes 使用控制器来分析 YAML/JSON 中定义的新状态与集群中的实际状态之间的差异。
-在上面的例子中,Replication Controller 可以看到用户指定的三个 pod 之间的差异,其中一个 pod 正在运行,并调度另外两个 Pod。如果你要登录 Kubernetes 并手动杀死其中一个 Pod,它会不断启动另一个来替换它。在实际状态与定义的状态匹配之前,Kubernetes 不会停止。这是非常强大的。
+在上面的例子中,Replication Controller 可以看到用户指定的三个 pod 之间的差异,其中一个 pod 正在运行,并调度另外两个 Pod。如果你登录 Kubernetes 并手动杀死其中一个 Pod,它会不断启动另一个来替换它。在实际状态与定义的状态匹配之前,Kubernetes 不会停止。这是非常强大的。
-### **原语**
+### 原语
接下来,你需要了解可以在 Kubernetes 中指定的原语。
![Kubernetes primitives][7]
-它不仅仅有 Pods,还有部署 (Deployments)、持久化卷声明 (Persistent Volume Claims)、服务 (Services),路由 (routes) 等。使用支持 Kubernetes 的平台 [OpenShift][8],你可以添加构建和 BuildConfigs。你大概需要一天左右的时间来了解这些原语。之后,当你的情况变得更加复杂时,你可以深入了解。
+这些原语不仅仅有 Pod,还有部署、持久化卷声明、服务,路由等。使用支持 Kubernetes 的平台 [OpenShift][8],你可以添加构建和 BuildConfig。你大概需要一天左右的时间来了解这些原语。你可以在你的用例变得更加复杂时再深入了解。
-### 将开发者映射到传统 IT 环境
+### 将原生开发者映射到传统 IT 环境
最后,考虑这该如何映射到你在传统 IT 环境中的操作。
![Mapping developer-native to traditional IT environments][9]
-尽管是一个技术问题,但用户一直在尝试解决业务问题。从历史上看,我们使用诸如 playbook 之类的东西将业务逻辑与单一语言的 IT 系统绑定起来。对于运维人员来说,这很不错,但是当你尝试将其扩展到开发人员时,它会变得更加繁琐。
+尽管是一个技术问题,但用户一直在尝试解决业务问题。从历史上看,我们使用诸如剧本之类的东西将业务逻辑与单一语言的 IT 系统绑定起来。对于运维人员来说,这很不错,但是当你尝试将其扩展到开发人员时,它会变得更加繁琐。
-直到 Kubernete 出现之前,我们从未能够以开发者的方式真正同时指定一组 IT 系统应如何表现和交互。如果你考虑一下,我们正在使用在 Kubernetes 中编写的 YAML/JSON 文件以非常便携和声明的方式扩展了管理存储、网络和计算资源的能力,但它们总会映射到某处的“真实”资源。我们不必以开发者身份担心它。
+直到 Kubernete 出现之前,我们从未能够以原生开发者的方式真正同时指定一组 IT 系统应如何表现和交互。如果你考虑一下,我们正在使用在 Kubernetes 中编写的 YAML/JSON 文件以非常便携和声明的方式扩展了管理存储、网络和计算资源的能力,但它们总会映射到某处的“真实”资源。我们不必以开发者身份担心它。
因此,快放弃关注 Kubernetes 生态系统中的新项目,而是专注开始使用它。在下一篇文章中,我将分享一些可以帮助你使用 Kubernetes 的工具和工作流程。
@@ -55,15 +57,15 @@ via: https://opensource.com/article/19/6/kubernetes-basics
作者:[Scott McCarty][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/fatherlinux/users/fatherlinux/users/fatherlinux
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/truck_steering_wheel_drive_car_kubernetes.jpg?itok=0TOzve80 (Truck steering wheel and dash)
-[2]: https://opensource.com/article/19/6/kubernetes-dump-truck
-[3]: https://opensource.com/article/19/6/kubernetes-learning-curve
+[2]: https://linux.cn/article-11011-1.html
+[3]: https://linux.cn/article-11026-1.html
[4]: https://opensource.com/resources/what-is-kubernetes
[5]: https://www.reddit.com/r/kubernetes/comments/bsoixc/what_are_the_essential_kubernetes_related/
[6]: https://opensource.com/sites/default/files/uploads/defined_state_-_actual_state.png (Defined state and actual state)
diff --git a/published/20190607 5 reasons to use Kubernetes.md b/published/201906/20190607 5 reasons to use Kubernetes.md
similarity index 100%
rename from published/20190607 5 reasons to use Kubernetes.md
rename to published/201906/20190607 5 reasons to use Kubernetes.md
diff --git a/published/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md b/published/201906/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md
similarity index 100%
rename from published/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md
rename to published/201906/20190608 An open source bionic leg, Python data pipeline, data breach detection, and more news.md
diff --git a/translated/tech/20190610 Applications for writing Markdown.md b/published/201906/20190610 Applications for writing Markdown.md
similarity index 72%
rename from translated/tech/20190610 Applications for writing Markdown.md
rename to published/201906/20190610 Applications for writing Markdown.md
index c11ce19b1c..0c7477e7fb 100644
--- a/translated/tech/20190610 Applications for writing Markdown.md
+++ b/published/201906/20190610 Applications for writing Markdown.md
@@ -1,30 +1,30 @@
[#]: collector: (lujun9972)
[#]: translator: (murphyzhao)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11027-1.html)
[#]: subject: (Applications for writing Markdown)
[#]: via: (https://fedoramagazine.org/applications-for-writing-markdown/)
[#]: author: (Ryan Lerch https://fedoramagazine.org/author/ryanlerch/)
-撰写 Markdown 的软件
+三个在 Fedora 平台上撰写 Markdown 的软件
======
![][1]
-Markdown 是一种轻量级标记语言,添加格式后,以纯文本格式查看时依然保持可读性。Markdown(和 Markdown 衍生物)被广泛用作 GitHub 和 pagure 等服务上文档标记的主要形式。根据设计,可以在文本编辑器中轻松创建和编辑 Markdown,但是,有许多编辑器可以提供 Markdown 标记的格式化预览,或提供 markdown 语法高亮显示。
+Markdown 是一种轻量级标记语言,可以在添加格式后以纯文本格式查看时依然保持可读性。Markdown(和 Markdown 衍生物)被广泛用作 GitHub 和 pagure 等服务上格式化文档的主要形式。根据其设计,可以在文本编辑器中轻松创建和编辑 Markdown,但是,有许多编辑器可以提供 Markdown 标记的格式化预览,或提供 Markdown 语法高亮显示。
本文介绍了针对 Fedora 平台的 3 个桌面应用程序,以帮助编辑 Markdown。
### UberWriter
-[UberWriter][2] 是一个小巧的 Markdown 编辑器和预览器,允许您编辑文本,并预览渲染的文档。
+[UberWriter][2] 是一个小巧的 Markdown 编辑器和预览器,允许你以文本方式编辑,并预览渲染的文档。
![][3]
-编辑器本身具有内置的内联预览,因此标记为粗体的文本以粗体显示。编辑器还提供图像、公式、脚注等标记的内联预览。按住 Ctrl 键单击其中的一个标记可以即时预览要显示的元素。
+该编辑器本身具有内置的内联预览,因此标记为粗体的文本以粗体显示。编辑器还提供图像、公式、脚注等标记的内联预览。按住 `Ctrl` 键单击其中的一个标记可以即时预览要显示的元素。
-除了编辑器功能外,UberWriter 还具有全屏模式和聚焦模式,有助于最大限度地减少干扰。焦点模式将以灰色显示除当前段落以外的所有内容,以帮助您专注于文档中当前元素。
+除了编辑器功能外,UberWriter 还具有全屏模式和聚焦模式,有助于最大限度地减少干扰。焦点模式将以灰色显示除当前段落以外的所有内容,以帮助你专注于文档中当前元素。
从第三方 Flathub 存储库安装 UberWriter 到 Fedora 平台。在将系统[设置为从 Flathub 安装][4]后,可以直接从 Software 应用程序中安装它。
@@ -34,13 +34,13 @@ Marker 是一个 Markdown 编辑器,它提供了一个简单的文本编辑器
![][5]
-此外,Marker 允许您以各种格式导出文档,包括 HTML、PDF 和开放文档格式(ODF)。
+此外,Marker 允许你以各种格式导出文档,包括 HTML、PDF 和开放文档格式(ODF)。
从第三方 Flathub 存储库安装 Marker 到 Fedora 平台。在将系统[设置为从 Flathub 安装][4]后,可以直接从 Software 应用程序中安装它。
### Ghostwriter
-以前的编辑更专注于最小的用户体验,Ghostwriter 提供了更多的功能和选项。Ghostwriter 提供了一个文本编辑器,当您以 Markdown 格式书写时,编辑器将 Markdown 部分样式化。粗体标记文本显示为粗体,标题标记显示为较大的字体,以帮助编写 Markdown 标记。
+以前的编辑更专注于最小的用户体验,Ghostwriter 提供了更多的功能和选项。Ghostwriter 提供了一个文本编辑器,当你以 Markdown 格式书写时,编辑器将 Markdown 部分样式化。粗体标记文本显示为粗体,标题标记显示为较大的字体,以帮助编写 Markdown 标记。
![][6]
@@ -60,8 +60,8 @@ via: https://fedoramagazine.org/applications-for-writing-markdown/
作者:[Ryan Lerch][a]
选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[murphyzhao](https://github.com/murphyzhao)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20190610 Expand And Unexpand Commands Tutorial With Examples.md b/published/201906/20190610 Expand And Unexpand Commands Tutorial With Examples.md
similarity index 100%
rename from published/20190610 Expand And Unexpand Commands Tutorial With Examples.md
rename to published/201906/20190610 Expand And Unexpand Commands Tutorial With Examples.md
diff --git a/published/20190610 Graviton- A Minimalist Open Source Code Editor.md b/published/201906/20190610 Graviton- A Minimalist Open Source Code Editor.md
similarity index 100%
rename from published/20190610 Graviton- A Minimalist Open Source Code Editor.md
rename to published/201906/20190610 Graviton- A Minimalist Open Source Code Editor.md
diff --git a/published/20190610 Neofetch - Display Linux system Information In Terminal.md b/published/201906/20190610 Neofetch - Display Linux system Information In Terminal.md
similarity index 100%
rename from published/20190610 Neofetch - Display Linux system Information In Terminal.md
rename to published/201906/20190610 Neofetch - Display Linux system Information In Terminal.md
diff --git a/published/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md b/published/201906/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md
similarity index 100%
rename from published/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md
rename to published/201906/20190610 Screen Command Examples To Manage Multiple Terminal Sessions.md
diff --git a/published/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md b/published/201906/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md
similarity index 100%
rename from published/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md
rename to published/201906/20190610 Search Linux Applications On AppImage, Flathub And Snapcraft Platforms.md
diff --git a/published/20190610 Try a new game on Free RPG Day.md b/published/201906/20190610 Try a new game on Free RPG Day.md
similarity index 100%
rename from published/20190610 Try a new game on Free RPG Day.md
rename to published/201906/20190610 Try a new game on Free RPG Day.md
diff --git a/published/20190610 Welcoming Blockchain 3.0.md b/published/201906/20190610 Welcoming Blockchain 3.0.md
similarity index 100%
rename from published/20190610 Welcoming Blockchain 3.0.md
rename to published/201906/20190610 Welcoming Blockchain 3.0.md
diff --git a/published/20190612 Installing alternative versions of RPMs in Fedora.md b/published/201906/20190612 Installing alternative versions of RPMs in Fedora.md
similarity index 100%
rename from published/20190612 Installing alternative versions of RPMs in Fedora.md
rename to published/201906/20190612 Installing alternative versions of RPMs in Fedora.md
diff --git a/published/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md b/published/201906/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md
similarity index 100%
rename from published/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md
rename to published/201906/20190613 Open hardware for musicians and music lovers- Headphone, amps, and more.md
diff --git a/published/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md b/published/201906/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md
similarity index 100%
rename from published/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md
rename to published/201906/20190613 Ubuntu Kylin- The Official Chinese Version of Ubuntu.md
diff --git a/published/20190614 How to send email from the Linux command line.md b/published/201906/20190614 How to send email from the Linux command line.md
similarity index 100%
rename from published/20190614 How to send email from the Linux command line.md
rename to published/201906/20190614 How to send email from the Linux command line.md
diff --git a/translated/tech/20190614 Personal assistant with Mycroft and Fedora.md b/published/201906/20190614 Personal assistant with Mycroft and Fedora.md
similarity index 83%
rename from translated/tech/20190614 Personal assistant with Mycroft and Fedora.md
rename to published/201906/20190614 Personal assistant with Mycroft and Fedora.md
index 58a589b6df..4b0a46c79d 100644
--- a/translated/tech/20190614 Personal assistant with Mycroft and Fedora.md
+++ b/published/201906/20190614 Personal assistant with Mycroft and Fedora.md
@@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11022-1.html)
[#]: subject: (Personal assistant with Mycroft and Fedora)
[#]: via: (https://fedoramagazine.org/personal-assistant-with-mycroft-and-fedora/)
[#]: author: (Clément Verna https://fedoramagazine.org/author/cverna/)
@@ -12,7 +12,7 @@
![][1]
-还在找开源的私人助理么?[Mycroft][2] 让你运行开源服务,从而更好地控制你的数据。
+> 想要找个开源的私人助理么?[Mycroft][2] 可以让你运行一个开源的服务,从而更好地控制你的数据。
### 在 Fedora 上安装 Mycroft
@@ -29,9 +29,9 @@ $ cd mycroft-core
$ ./dev_setup.sh
```
-安装脚本会提示用户帮助他完成安装过程。建议运行稳定版本并获取自动更新。
+安装脚本会提示用户以帮助他完成安装过程。建议运行稳定版本并获取自动更新。
-当提示在本地安装 Mimic 文字转语音引擎时,请回答否。因为根据安装描述,这可能需要很长时间,并且 Mimic 有适合 Fedora 的 rpm 包,因此可以使用 dnf 进行安装。
+当提示在本地安装 Mimic 文字转语音引擎时,请回答否。因为根据安装描述,这可能需要很长时间,并且 Mimic 有适合 Fedora 的 rpm 包,因此可以使用 `dnf` 进行安装。
```
$ sudo dnf install mimic
@@ -63,12 +63,10 @@ Hey Mycroft, how are you ?
Hey Mycroft, what's the weather like ?
```
-如果你对它是如何工作的感兴趣,_start-mycroft.sh_ 脚本提供了一个_命令行_选项,它能让你使用命令行交互。它也会显示用于调试的有用信息。
+如果你对它是如何工作的感兴趣,`start-mycroft.sh` 脚本提供了一个命令行选项,它能让你使用命令行交互。它也会显示用于调试的有用信息。
Mycroft 总在学习新技能,并且有很多方法给 Mycroft 社区做[贡献][6]。
-* * *
-
由 [Przemyslaw Marczynski][7] 摄影,发布于 [Unsplash][8]
--------------------------------------------------------------------------------
@@ -78,7 +76,7 @@ via: https://fedoramagazine.org/personal-assistant-with-mycroft-and-fedora/
作者:[Clément Verna][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20190617 Exploring -run on Linux.md b/published/201906/20190617 Exploring -run on Linux.md
similarity index 100%
rename from published/20190617 Exploring -run on Linux.md
rename to published/201906/20190617 Exploring -run on Linux.md
diff --git a/published/20190619 Get the latest Ansible 2.8 in Fedora.md b/published/201906/20190619 Get the latest Ansible 2.8 in Fedora.md
similarity index 100%
rename from published/20190619 Get the latest Ansible 2.8 in Fedora.md
rename to published/201906/20190619 Get the latest Ansible 2.8 in Fedora.md
diff --git a/published/20190621 Bash Script to Monitor Memory Usage on Linux.md b/published/201906/20190621 Bash Script to Monitor Memory Usage on Linux.md
similarity index 100%
rename from published/20190621 Bash Script to Monitor Memory Usage on Linux.md
rename to published/201906/20190621 Bash Script to Monitor Memory Usage on Linux.md
diff --git a/published/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md b/published/201906/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md
similarity index 100%
rename from published/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md
rename to published/201906/20190622 Open Source Slack Alternative Mattermost Gets -50M Funding.md
diff --git a/published/201906/20190624 Raspberry Pi 4 is here.md b/published/201906/20190624 Raspberry Pi 4 is here.md
new file mode 100644
index 0000000000..3aab50ec31
--- /dev/null
+++ b/published/201906/20190624 Raspberry Pi 4 is here.md
@@ -0,0 +1,93 @@
+[#]: collector: (lujun9972)
+[#]: translator: (wahailin)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11034-1.html)
+[#]: subject: (Raspberry Pi 4 is here!)
+[#]: via: (https://opensource.com/article/19/6/raspberry-pi-4)
+[#]: author: (Ben Nuttall https://opensource.com/users/bennuttall)
+
+树莓派 4 来袭!
+======
+
+
+
+> 售价 35 美元起的新一代树莓派单板计算机,装载了 1.5 GHz 的 Arm 芯片,并支持双 HDMI 4K 显示,全吞吐量千兆以太网,以及更多新特性。
+
+![Raspberry Pi 4 board][1]
+
+树莓派的最新版本树莓派 4 代,已于近日(北京时间 6 月 24 日)发布,这早于此前预期。树莓派 4 装载了 1.5 GHz 的 Arm 芯片和 VideoCore GPU,支持双 4K 显示输出,并引入了 USB 3 接口和全吞吐量千兆以太网,以及最高可达 4G 的多个可选 RAM 配置。
+
+![Raspberry Pi 4 case][2]
+
+树莓派 4 是非常强大的单板计算机,其起始售价依然是 35 美元。起始版的 RAM 配置为 1G,2G RAM 配置的树莓派售价为 45 美元,顶配 4G RAM 的树莓派售价为 55 美元,采用这种差异化定价对树莓派尚属首次。
+
+树莓派 4 的详细配置如下:
+
+ * 1.5 GHz 4 核心 64 位博通 BCM2711 A72 CPU
+ * VideoCore VI GPU
+ * 千兆以太网端口
+ * 1GB/2GB/4GB LPDDR4 SDRAM 内存
+ * 双 Micro-HDMI 接口
+ * 两个 USB 3 接口
+ * 两个 USB 2 接口
+ * 双频(2.4 GHz 和 5 GHz)无线网络
+ * 蓝牙 5.0
+ * USB Type C 电源接口
+ * CSI 摄像头接口
+ * DSI 显示接口
+ * MicroSD 卡槽
+ * PoE(以太网供电)供电针
+ * 完全兼容早期的树莓派产品
+
+### USB 接口和网络
+
+树莓派 4 板载了更高速率的 USB 3 接口;它通过 Type C 接口供电,并提供两个 USB 3 接口和两个 USB 2 接口。USB 3 接口可以为连接的硬盘和其它外部设备提供更高的速率。
+
+![Raspberry Pi 4 USBs][3]
+
+基于 BCM2835 的树莓派 1 到 3 代的芯片只有一个本地 USB 接口,并且没有以太网接口,因而需要使用板子的 USB 集线器给出更多的 USB 接口和以太网接口。树莓派 3B+ 增加了一个专用的局域网(LAN)芯片,装载了千兆以太网,但它受到 USB 2 速率的限制。树莓派 4 板载了专门的千兆以太网,并且由于它不再受到 USB 速率的限制,网络速度要快得多。
+
+树莓派 4 采用了 3B+ 中已有的技术 —— 该技术使得树莓派 3B+ 成为了第一个带有双频无线网络的单板计算机,即可以同时连接 2.4 GHz 和 5 GHz 频率的网络。
+
+### 显示
+
+设计第一代树莓派时,其 CPU 和 GPU 性能的平衡大大偏向于 GPU。VideoCore IV 是一个非常强大的图形处理器,支持全高清 1080p 多媒体的处理,这就是为什么树莓派一直作为家庭媒体中心而广受欢迎的原因。树莓派 2 代在某种程度上进行了权衡修改,并将 CPU 的性能进行提升,将树莓派从单核发展成四核 ARM 芯片。而树莓派 4 代将 CPU 和 GPU 的性能都进行了大幅提升。新的 VideoCore VI GPU 支持 4K 视频,并允许通过板子上的两个 Micro HDMI 端口(板子特意保持了和旧有型号相同的尺寸)进行双显示输出,这里要用一个适配器或 Micro HDMI 转 full HDMI 的转换线连接到 HDMI 屏幕。
+
+当你需要同时浏览多个窗口时,需要用到更多的物理显示屏,双显示的好处在此时就得到了绝佳体现。如果你正在编程,你可能会在其中一个屏幕上编写代码,构建网站或应用,而在另一个屏幕上查看数据库、Web 浏览器、电子邮件或其他内容。这是树莓派首次可以不必将开发局限在一台显示器上,从而可以让你在需要时,在不同的屏幕上构建具有不同内容的基于树莓派的项目。
+
+该树莓派还有一个显示器串行接口(DSI),用于驱动另一个特殊的显示-这里并非指另一个监视器本身,而是通过一根挠性电缆连接的官方树莓派触摸屏显示器。
+
+### Raspbian Buster
+
+树莓派 4 发布后,紧接着更新了基于 Debian 的系统 Raspbian Buster,而新的树莓派对 OpenGL ES 3 的支持,使我们在 Raspbian Buster 上为树莓派 4 开发任意软件成为可能。Buster 对界面进行了一些调整,并对很多软件进行了升级,其中包括 Python3.7。
+
+![Raspbian Buster][4]
+
+### 开源图形驱动程序
+
+在过去的五年中,Eric Anholt 一直致力于为树莓派编写开源图形驱动程序。现在,Raspbian 可以使用这个驱动程序加速树莓派上的 Web 浏览、桌面图形和 3D 应用,这取代了以前需要的大量闭源代码。非常感谢 Eric 和博通的贡献。
+
+按之前预计,树莓派 4 将于明年完成,但由于芯片设计比预期更早投入生产,树莓派 4 因而可以提早到现在发布。
+
+* * *
+
+树莓派 4 已经开始发售,你会选择哪个型号呢?在评论中说出你的想法吧。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/raspberry-pi-4
+
+作者:[Ben Nuttall][a]
+选题:[lujun9972][b]
+译者:[wahailin](https://github.com/wahailin)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/bennuttall
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/raspberry-pi-4_lead.jpg?itok=2bkk43om (Raspberry Pi 4 board)
+[2]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-case.jpg (Raspberry Pi 4 case)
+[3]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-usb.jpg (Raspberry Pi 4 USBs)
+[4]: https://opensource.com/sites/default/files/uploads/raspbian-buster.png (Raspbian Buster)
diff --git a/translated/tech/20190624 Using i3 with multiple monitors.md b/published/201906/20190624 Using i3 with multiple monitors.md
similarity index 71%
rename from translated/tech/20190624 Using i3 with multiple monitors.md
rename to published/201906/20190624 Using i3 with multiple monitors.md
index 96d3a4b6b9..33eeeac1e2 100644
--- a/translated/tech/20190624 Using i3 with multiple monitors.md
+++ b/published/201906/20190624 Using i3 with multiple monitors.md
@@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11031-1.html)
[#]: subject: (Using i3 with multiple monitors)
[#]: via: (https://fedoramagazine.org/using-i3-with-multiple-monitors/)
[#]: author: (Adam Šamalík https://fedoramagazine.org/author/asamalik/)
@@ -12,13 +12,13 @@
![][1]
-你在 Linux 工作站上使用多个显示器吗?一次看到很多东西可能是有益的。但在我们的工作中通常有比实际显示器更多的窗口 - 这是一件好事,因为一次看到太多东西可能会分散注意力。因此能够切换我们在单个显示器上看到的内容似乎很重要。
+你在 Linux 工作站上使用多个显示器吗?一次看到很多东西可能是有益的。但在我们的工作中通常有比实际显示器更多的窗口 —— 这是一件好事,因为一次看到太多东西可能会分散注意力。因此能够切换我们在单个显示器上看到的内容似乎很重要。
-让我们来谈谈 i3,它是一个流行的平铺窗口管理器,可以与多个显示器配合使用。并且有许多其他窗口管理器没有的便利功能,它能够独立地在各个显示器上切换工作区。
+让我们来看看 i3,它是一个流行的平铺窗口管理器,可以与多个显示器配合使用。并且有许多其他窗口管理器没有的便利功能,它能够独立地在各个显示器上切换工作区。
### 快速介绍 i3
-大约三年前,[Fedora Magazine 已经写了一篇关于 i3 的文章][2]。这是有史以来最受欢迎的文章之一!虽然情况并非总是如此,但 i3 非常稳定,而且这篇文章如今也很准确。所以,这次不会重复太多,本篇只涵盖了让 i3 启动和运行,如果你是 i3 的新手,想要了解更多基础知识的话,欢迎你继续阅读。
+大约三年前,[Fedora Magazine 已经写了一篇关于 i3 的文章][2]。这是有史以来最受欢迎的文章之一!虽然情况并非总是如此,但 i3 非常稳定,而且那篇文章如今也很准确。所以,这次不会重复太多内容,本篇只涵盖了让 i3 启动和运行的极少内容,如果你是 i3 的新手,想要了解更多基础知识的话,欢迎你继续阅读。
要在系统上安装 i3,请运行以下命令:
@@ -28,7 +28,7 @@ $ sudo dnf install i3
完成后,注销,然后在登录屏幕上选择 i3 作为窗口管理器,然后重新登录。
-当你第一次运行 i3 时,系统会询问你是否要继续进行自动配置 - 在此处回答是。之后,你将被要求选择 “mod 键”。如果你在这里不确定,只需接受默认值,即将 Windows/Super 键设置为 mod 键。你将主要使用此键用于窗口管理器中的快捷方式。
+当你第一次运行 i3 时,系统会询问你是否要继续进行自动配置 —— 在此处回答是。之后,你将被要求选择 “mod 键”。如果你不确定,只需接受默认值,即将 Windows/Super 键设置为 mod 键。你将主要使用此键用于窗口管理器中的快捷方式。
此时,你应该在底部看到一个小条和一个空白屏幕。我们来看看一些基本的快捷方式。
@@ -72,7 +72,7 @@ $mod + shift + q
还有更多的快捷方式,但这些足够让你开始使用 i3。
-要退出 i3(退出登录)按:
+要退出 i3(并退出登录)按:
```
$mod + shift + e
@@ -84,9 +84,9 @@ $mod + shift + e
现在我们已经启动并运行了 i3,让我们把所有这些屏幕都用到!
-为此,我们需要使用命令行,因为 i3 非常轻量级,并且没有 gui 来管理其他屏幕。如果这听起来很难也不用担心,它实际上非常简单!
+为此,我们需要使用命令行,因为 i3 非常轻量级,并且没有 GUI 来管理其他屏幕。如果这听起来很难也不用担心,它实际上非常简单!
-我们将使用的命令称为 xrandr。如果你的系统上没有 xrandr,请运行以下命令安装:
+我们将使用的命令称为 `xrandr`。如果你的系统上没有 `xrandr`,请运行以下命令安装:
```
$ sudo dnf install xrandr
@@ -98,7 +98,7 @@ $ sudo dnf install xrandr
$ xrandr
```
-输出列出了所有可用输出,并通过显示支持的分辨率指示哪些输出连接了屏幕(通过电缆连接的显示器)。好消息是,我们不需要关心使它们工作的分辨率。
+输出列出了所有可用输出设备,并通过显示支持的分辨率指示哪些输出连接了屏幕(通过电缆连接的显示器)。好消息是,我们不需要关心使它们工作的分辨率。
这个例子显示了笔记本电脑的主屏幕(名为 eDP1),以及连接到 HDMI-2 输出的第二个显示器,它位于笔记本电脑的右侧。要打开它,请运行以下命令:
@@ -108,7 +108,7 @@ $ xrandr --output HDMI-2 --auto --right-of eDP1
就是这样!你的屏幕现已激活。
-![Second screen active. The commands shown on this screenshot are slightly different than in the article, as they set a smaller resolution to make the screenshots more readable.][3]
+![第二个屏幕激活。截屏上显示命令与文章中略有不同,它设置了更小的分辨率以使截屏适合阅读][3]
### 在多个屏幕上管理工作区
@@ -122,11 +122,11 @@ $mod + NUMBER
你可以独立切换各个显示器上的工作区!
-![Workspace 2 on the left screen, workspace 4 on the right screen.][4]
+![工作空间 2 在左侧屏幕,工作空间 4 在右侧屏幕][4]
-![Left screen switched to workspace 3, right screen still showing workspace 4.][5]
+![左侧屏幕切换为工作空间 3,右侧屏幕仍为工作空间 4][5]
-![Right screen switched to workspace 4, left screen still showing workspace 3.][6]
+![右侧屏幕切换为工作空间 5,左侧屏幕仍为空间空间 3][6]
### 在显示器之间移动工作区
@@ -138,7 +138,7 @@ $mod + shift + NUMBER
我们也可以将工作区移动到不同的屏幕。但是,此操作没有默认快捷方式,因此我们必须先创建它。
-要创建自定义快捷方式,你需要在你选择的文本编辑器中打开配置文件(本文使用 _vim_):
+要创建自定义快捷方式,你需要在你选择的文本编辑器中打开配置文件(本文使用 `vim`):
```
$ vim ~/.config/i3/config
@@ -163,9 +163,9 @@ $mod + shift + r
$mod + p
```
-![Workspace 2 with Firefox on the left screen][7]
+![打开火狐浏览器的工作空间 2 在左侧][7]
-![Workspace 2 with Firefox moved to the second screen][8]
+![打开火狐浏览器的工作空间 2 移动到第二个屏幕][8]
就是这些了!享受你的新多显示器体验,并了解更多 i3,欢迎阅读 Fedora Magazine 上之前关于 i3 的文章,或者查看官方 i3 文档。
@@ -176,7 +176,7 @@ via: https://fedoramagazine.org/using-i3-with-multiple-monitors/
作者:[Adam Šamalík][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/201906/20190628 FreeDOS turns 25 years old- An origin story.md b/published/201906/20190628 FreeDOS turns 25 years old- An origin story.md
new file mode 100644
index 0000000000..bf11ae7964
--- /dev/null
+++ b/published/201906/20190628 FreeDOS turns 25 years old- An origin story.md
@@ -0,0 +1,97 @@
+[#]: collector: (lujun9972)
+[#]: translator: (wxy)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11033-1.html)
+[#]: subject: (FreeDOS turns 25 years old: An origin story)
+[#]: via: (https://opensource.com/article/19/6/freedos-anniversary)
+[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
+
+25 岁的 FreeDOS:起源故事
+======
+
+> 操作系统的历史是开发人员共同造物的开源软件模型的很好例子。
+
+
+
+6 月 29 日是 [FreeDOS][2] 25 周年的日子。不管对于哪个开源软件项目来说,这都是一个重要的里程碑,我为过去这 1/4 个世纪来我们在这方面所做的工作感到自豪。我也为我们如何构建 FreeDOS 感到自豪,因为它是开源软件模型如何工作的一个很好的例子。
+
+在它的那个时代,MS-DOS 是一个功能强大的操作系统。自从我的父母用新的 IBM 机器取代了老化的 Apple II 计算机以来,我已经使用 DOS 多年了。MS-DOS 提供了一个灵活的命令行,我非常喜欢它,它可以方便地操作我的文件。多年来,我学会了如何在 C 中编写自己的实用程序,以进一步扩展其命令行功能。
+
+大约在 1994 年,微软宣布其下一代的 Windows 将取消 MS-DOS。但我喜欢 DOS,即使我已经开始迁移到 Linux,我仍然会启动到 MS-DOS 来运行一些 Linux 尚未拥有的应用程序。
+
+我想,如果我们想留下 DOS,我们需要自己编写一个。FreeDOS 就是这样诞生的。
+
+1994 年 6 月 29 日,我向 Usenet 上的 comp.os.msdos.apps 新闻组发表了关于我的想法的一个小小公告:
+
+> PD-DOS 项目公告:
+>
+> 几个月前,我发布了有关启动公共域(PD)版本 DOS 的文章。当时对此的普遍支持很强烈,很多人都赞同:“开始编写吧!”所以,我…
+>
+> 宣布开发 PD-DOS 的首次尝试。我写了一个“清单”来描述这样的一个项目的目标和工作大纲,以及一个“任务列表”,它准确地显示了需要编码开发的内容。我会在这里发布,然后讨论。
+>
+
+虽然我宣布该项目为 PD-DOS(“公共领域”的意思,缩写是为了模仿 IBM 的“PC-DOS”),但我们很快将名称改为 Free-DOS,再后来又改为 FreeDOS。
+
+我马上开始开发它。首先,我分享了我编写的用于扩展 DOS 命令行功能的实用程序。它们中的许多程序都重现了 MS-DOS 功能,包括 `CLS`、`DATE`、`DEL`、`FIND`、`HELP` 和 `MORE`。有些是我从 Unix 借来的新功能,比如 `TEE` 和 `TRCH`(Unix 的 `tr` 的简单实现)。我贡献了十几个 FreeDOS 工具。
+
+通过分享我的实用程序,我给了其他开发人员一个起点。通过在 [GNU 通用公共许可证][3](GNU GPL)下共享我的源代码,我隐含地允许其他人添加新功能并修复错误。
+
+看到 FreeDOS 开始成型的其他开发人员联系了我并希望提供帮助。Tim Norman 是第一个人,Tim 自愿编写命令行 shell(`COMMAND.COM`,后来命名为 `FreeCOM`)。其他人贡献了复制或扩展了 DOS 命令行的实用程序。
+
+我们尽快发布了第一个 alpha 版本。在宣布了 FreeDOS 后不到三个月,我们就有了一个集合了我们所编写的功能的 Alpha 1 发行版。当我们发布 Alpha 5 时,FreeDOS 已经拥有了 60 多个实用程序。FreeDOS 包含了 MS-DOS 中从未想过的功能,包括通过 PPP 拨号驱动程序实现的互联网连接,以及使用主 VGA 监视器和辅助单色监视器的双显示器支持。
+
+新的开发人员加入了该项目,我们很欢迎他们。到 1998 年 10 月,感谢 Pat Villani,FreeDOS 有了一个可以工作的内核。FreeDOS 还提供了许多新功能,不仅带来了与 MS-DOS 的同等性,而且超越了 MS-DOS,包括 ANSI 支持和类似 Unix lpr 的打印后台处理程序。
+
+你可能熟悉其他的里程碑版本。我们继续向 1.0 版本迈进,终于在 2006 年 9 月发布了 FreeDOS 1.0,在 2012 年 1 月发布了 FreeDOS 1.1,在 2016 年 12 月发布了 FreeDOS 1.2。而 MS-DOS 很久以前就停止了开发,因此我们在 1.0 发布之后不需要经常更新了。
+
+如今,FreeDOS 已经是一个非常现代的 DOS。我们已经超越了“经典 DOS”,现在 FreeDOS 拥有许多开发工具,如编译器、汇编器和调试器。除了普通的 DOS Edit 编辑器之外,我们还有许多编辑器,包括 Fed、Pico、TDE 以及 Emacs 和 Vi 的一个版本。FreeDOS 支持网络,甚至还提供简单的图形 Web 浏览器(Dillo)。我们有大量的新工具,包括许多可以让 Linux 用户感到熟悉的实用工具。
+
+正因为开发人员的共同创造,FreeDOS 才走到如今。本着开源软件的精神,我们通过修复错误和添加新功能为彼此的工作做出了贡献。我们将用户视为共同开发者;我们总能找到方法来吸引贡献者,无论是编写代码还是编写文档。我们基于优点达成共识。如果这听起来很熟悉,那是因为这些是开源软件的核心价值:透明度、协作、尽早发布、经常发布、精英管理和社区。这就是[开源方式][4]!
+
+我鼓励你下载 FreeDOS 1.2 并尝试一下。
+
+### 更多资源
+
+ * [FreeDOS 官方网站][2]
+ * [FreeDOS wiki][5]
+ * [下载 FreeDOS 1.2][6]
+ * [FreeDOS 的免费电子书][7]
+ * [FreeDOS 的简单介绍][8]
+ * [FreeDOS 起源与革命][9]
+ * [4 个 FreeDOS 的有趣事实][10]
+ * [如何使用 FreeDOS 升级你的系统 BIOS][11]
+ * [庆祝 FreeDOS 24 岁生日:有用的命令速查表][12]
+ * [如何在 Linux 中运行 DOS 程序][13]
+ * [让 DOS 活到现在并通过开源来起步][14]
+ * [在树莓派上运行 DOS][15]
+
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/freedos-anniversary
+
+作者:[Jim Hall][a]
+选题:[lujun9972][b]
+译者:[wxy](https://github.com/wxy)
+校对:[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/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/freedos-fish-laptop-color.png?itok=vfv_Lpph (FreeDOS fish logo and command prompt on computer)
+[2]: https://www.freedos.org/
+[3]: https://www.gnu.org/licenses/licenses.en.html
+[4]: https://opensource.com/open-source-way
+[5]: http://wiki.freedos.org/
+[6]: https://www.freedos.org/download/
+[7]: https://www.freedos.org/ebook/
+[8]:https://linux.cn/article-9983-1.html
+[9]: https://opensource.com/article/17/10/freedos
+[10]: https://opensource.com/article/17/6/freedos-still-cool-today
+[11]: https://opensource.com/article/17/6/upgrade-bios-freedos
+[12]: https://opensource.com/article/18/6/freedos-commands-cheat-sheet
+[13]: https://linux.cn/article-9014-1.html
+[14]: https://opensource.com/life/16/9/interview-jim-hall-freedos
+[15]: https://linux.cn/article-9544-1.html
diff --git a/published/20190621 Three Ways to Lock and Unlock User Account in Linux.md b/published/20190621 Three Ways to Lock and Unlock User Account in Linux.md
new file mode 100644
index 0000000000..870285a844
--- /dev/null
+++ b/published/20190621 Three Ways to Lock and Unlock User Account in Linux.md
@@ -0,0 +1,294 @@
+[#]: collector: (lujun9972)
+[#]: translator: (heguagnzhi)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11043-1.html)
+[#]: subject: (Three Ways to Lock and Unlock User Account in Linux)
+[#]: via: (https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/)
+[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
+
+在 Linux 中锁定和解锁用户帐户的三种方法
+======
+
+
+
+如果你已经在你的组织中实施了某种密码策略,你无需看这篇文章了。但是在这种情况下,如果你给账户设置了 24 小时的锁定期,你需要手动解锁用户帐户。
+
+本教程将帮助你在 Linux 中手动锁定和解锁用户帐户。
+
+这可以通过三种方式使用以下两个 Linux 命令来完成。
+
+* `passwd`:用于更新用户的身份验证令牌。这个任务是通过调用 Linux PAM 和 libuser API 来实现。
+* `usermod`:用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中等等功能。
+
+为了说明这一点,我们选择 `daygeek` 用户帐户。让我们看看,怎么一步步来实现的。
+
+请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们的帐户。你可以使用 `id` 命令检查给定的用户帐户在系统中是否可用。是的,我的这个帐户在我的系统中是可用的。
+
+```
+# id daygeek
+
+uid=2240(daygeek) gid=2243(daygeek) groups=2243(daygeek),2244(ladmin)
+```
+
+### 方法1: 如何使用 passwd 命令锁定、解锁和检查 Linux 中给定用户帐户的状态?
+
+`passwd` 命令是 Linux 管理员经常使用的命令之一。它用于更新 `/etc/shadow` 文件中用户的身份验证令牌。
+
+使用 `-l` 开关运行 `passwd` 命令,锁定给定的用户帐户。
+
+```
+# passwd -l daygeek
+
+Locking password for user daygeek.
+passwd: Success
+```
+
+你可以通过 `passwd` 命令或从 `/etc/shadow` 文件中获取给定用户名来检查锁定的帐户状态。
+
+使用 `passwd` 命令检查用户帐户锁定状态。
+
+```
+# passwd -S daygeek
+或
+# passwd --status daygeek
+
+daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
+```
+
+这将输出给定帐户密码状态的简短信息。
+
+* `LK`:密码被锁定
+* `NP`:没有设置密码
+* `PS`:密码已设置
+
+使用 `/etc/shadow` 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。
+
+```
+# grep daygeek /etc/shadow
+
+daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
+```
+
+使用 `-u` 开关运行 `passwd` 命令,可以解锁给定的用户帐户。
+
+```
+# passwd -u daygeek
+
+Unlocking password for user daygeek.
+passwd: Success
+```
+
+### 方法2:如何使用 usermod 命令在 Linux 中锁定、解锁和检查给定用户帐户的状态?
+
+`usermod` 命令也经常被 Linux 管理员使用。`usermod` 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。
+
+使用 `-L` 开关运行 `usermod` 命令,锁定给定的用户帐户。
+
+```
+# usermod --lock daygeek
+或
+# usermod -L daygeek
+```
+
+你可以通过 `passwd` 命令或从 `/etc/shadow` 文件中获取给定用户名来检查锁定的帐户状态。
+
+使用 `passwd` 命令检查用户帐户锁定状态。
+
+```
+# passwd -S daygeek
+或
+# passwd --status daygeek
+
+daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
+```
+
+这将输出给定帐户密码状态的简短信息。
+
+* `LK`:密码被锁定
+* `NP`:没有设置密码
+* `PS`:密码已设置
+
+使用 `/etc/shadow` 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。
+
+```
+# grep daygeek /etc/shadow
+
+daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
+```
+
+使用 `-U` 开关运行 `usermod` 命令以解锁给定的用户帐户。
+
+```
+# usermod --unlock daygeek
+或
+# usermod -U daygeek
+```
+
+### 方法-3:如何在 Linux 中使用 usermod 命令禁用、启用对给定用户帐户的 SSH 访问?
+
+`usermod` 命令也是经常被 Linux 管理员使用的命令。`usermod` 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。
+
+替代的,锁定可以通过将 `nologin` shell 分配给给定用户来完成。为此,可以运行以下命令。
+
+```
+# usermod -s /sbin/nologin daygeek
+```
+
+你可以通过从 `/etc/passwd` 文件中给定用户名来检查锁定的用户帐户详细信息。
+
+```
+# grep daygeek /etc/passwd
+
+daygeek:x:2240:2243::/home/daygeek:/sbin/nologin
+```
+
+我们可以通过分配回原来的 shell 来启用用户的 ssh 访问。
+
+```
+# usermod -s /bin/bash daygeek
+```
+
+### 如何使用 shell 脚本锁定、解锁和检查 Linux 中多个用户帐户的状态?
+
+如果你想锁定/解锁多个帐户,那么你需要找个脚本。
+
+是的,我们可以编写一个小的 shell 脚本来执行这个操作。为此,请使用以下 shell 脚本。
+
+创建用户列表。每个用户信息在单独的行中。
+
+```
+$ cat user-lists.txt
+
+u1
+u2
+u3
+u4
+u5
+```
+
+使用以下 shell 脚本锁定 Linux中 的多个用户帐户。
+
+```
+# user-lock.sh
+
+#!/bin/bash
+for user in `cat user-lists.txt`
+do
+ passwd -l $user
+done
+```
+
+将 `user-lock.sh` 文件设置为可执行权限。
+
+```
+# chmod + user-lock.sh
+```
+
+最后运行脚本来达成目标。
+
+```
+# sh user-lock.sh
+
+Locking password for user u1.
+passwd: Success
+Locking password for user u2.
+passwd: Success
+Locking password for user u3.
+passwd: Success
+Locking password for user u4.
+passwd: Success
+Locking password for user u5.
+passwd: Success
+```
+
+使用以下 shell 脚本检查锁定的用户帐户。
+
+```
+# vi user-lock-status.sh
+
+#!/bin/bash
+for user in `cat user-lists.txt`
+do
+ passwd -S $user
+done
+```
+
+设置 `user-lock-status.sh` 可执行权限。
+
+```
+# chmod + user-lock-status.sh
+```
+
+最后运行脚本来达成目标。
+
+```
+# sh user-lock-status.sh
+
+u1 LK 2019-06-10 0 99999 7 -1 (Password locked.)
+u2 LK 2019-06-10 0 99999 7 -1 (Password locked.)
+u3 LK 2019-06-10 0 99999 7 -1 (Password locked.)
+u4 LK 2019-06-10 0 99999 7 -1 (Password locked.)
+u5 LK 2019-06-10 0 99999 7 -1 (Password locked.)
+```
+
+使用下面的 shell 脚本来解锁多个用户。
+
+```
+# user-unlock.sh
+
+#!/bin/bash
+for user in `cat user-lists.txt`
+do
+ passwd -u $user
+done
+```
+
+设置 `user-unlock.sh` 可执行权限。
+
+```
+# chmod + user-unlock.sh
+```
+
+最后运行脚本来达成目标。
+
+```
+# sh user-unlock.sh
+
+Unlocking password for user u1.
+passwd: Success
+Unlocking password for user u2.
+passwd: Success
+Unlocking password for user u3.
+passwd: Success
+Unlocking password for user u4.
+passwd: Success
+Unlocking password for user u5.
+passwd: Success
+```
+
+运行相同的 shell 脚本 `user-lock-status.sh`,检查这些锁定的用户帐户在 Linux 中是否被解锁。
+
+```
+# sh user-lock-status.sh
+
+u1 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
+u2 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
+u3 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
+u4 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
+u5 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
+```
+
+--------------------------------------------------------------------------------
+
+via: https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/
+
+作者:[Magesh Maruthamuthu][a]
+选题:[lujun9972][b]
+译者:[heguangzhi](https://github.com/heguangzhi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.2daygeek.com/author/magesh/
+[b]: https://github.com/lujun9972
diff --git a/published/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md b/published/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md
new file mode 100644
index 0000000000..54d28b5d1f
--- /dev/null
+++ b/published/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md
@@ -0,0 +1,102 @@
+[#]: collector: (lujun9972)
+[#]: translator: (wahailin)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11039-1.html)
+[#]: subject: (With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment)
+[#]: via: (https://itsfoss.com/raspberry-pi-4/)
+[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
+
+升级配置后,树莓派 4 瞄准了桌面市场
+======
+
+> 树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 4 GB,并支持双 4k 显示。最新硬件配置下,你可以轻松将其作为桌面使用。起售价格依然和旧有型号一样,为 35 美元。
+
+树莓派基金会已经发布了最新版的[树莓派 4B][1] 单板计算机。
+
+在升级了几个重要特性后,树莓派 4 成为了 40 美元以下的[单板计算机][2]市场中最强大的产品。
+
+![Raspberry Pi 4][3]
+
+### 树莓派 4 的新特性
+
+树莓派 4 开始支持双 4k 显示器设置 —— 如果你对此有所需求的话。除此外,它还配备了更强大的处理器,其搭载的 RAM 最高可达 4 GB,这几乎可以媲美一个中端的便携电脑。
+
+本次配置升级使树莓派可以参与[迷你 Linux 机][4]市场的竞争,而依旧 35 美元的起始售价使其比[其它单板计算机][2]更具优势。
+
+树莓派 4 发布不久,各大主要的在线商店就几乎销售一空。那么,我们来看看它有哪些新卖点吧。
+
+#### 树莓派 4 的核心配置
+
+![Raspberry Pi 4 Tech Specs][5]
+
+ * 博通 BCM2711,1.5 GHz 64 位 4 核心 Cortex-A72(ARM v8)
+ * 顶配 4 GB RAM(可选 RAM 配置为 1 GB,2 GB 和 4 GB)
+ * 无线网络和蓝牙 5.0
+ * 两个 USB 3.0 接口,两个 USB 2.0 接口
+ * 40 针 GPIO 引脚(向前兼容)
+ * 两个 Micro-HDMI 接口(支持 4k 显示)
+ * USB-C(供电接口)
+ * 千兆以太网
+
+如果你想更深入的了解配置信息,可以参考树莓派网站的[官方技术规格][6]。
+
+### 定价和可用性
+
+树莓派 4 的板子起始售价为 35 美元,根据可选配置不同(1-4 GB),售价也不同。
+
+ * 1 GB RAM 树莓派 4 售价:35 美元
+ * 2 GB RAM 树莓派 4 售价:45 美元
+ * 4 GB RAM 树莓派 4 售价:55 美元
+
+根据你所在国家或地区的不同,树莓派 4 有不同的供应商。现有库存即将售罄,如果你想购买一定尽快,否则就要再等上一段时日了,你还可以参考官方页面上的购买信息。
+
+- [购买树莓派 4][1]
+
+请注意,[运行树莓派需要额外的配件][7],这就是为什么官方提供了可选的基础套件,套件中包含了所有必需的支持配件。
+
+#### 树莓派 4 桌面套件
+
+![Raspberry Pi 4 Desktop Kit][9]
+
+你可以在购买树莓派 4 时同时购买树莓派 4 的桌面套件:外壳、键盘、鼠标、micro HDMI 线、USB-C 电源、用户指南以及[预装了 Rasbian 的 16 GB microSD 卡][10]。
+
+![Raspberry Pi Branded Desktop Kit][11]
+
+整组套件采用红白颜色设计,看起来很美观(如果你关心外观的话)。你可以在树莓派网站上获取更多的购买信息。
+
+- [树莓派 4 桌面套件][12]
+
+### 树莓派 4 的前景
+
+拥有所有这些配置后,树莓派 4 无疑会成为同类产品中最好的之一。同样,相比购买入门级桌面计算机,购买树莓派 4 也会是更好的选择。你可以只花很便宜的价格,就能轻松访问文档、管理电子表格,以及完成更多其它操作。
+
+我绝对会考虑购买树莓派 4 作为备用(但强大)的入门级桌面计算机,但不会配备 4k 显示器,但依据文档,树莓派 4 肯定是支持双 4k 显示设置的。
+
+你怎么评价最新版的树莓派 4B? 欢迎在评论中说出你的想法。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/raspberry-pi-4/
+
+作者:[Ankush Das][a]
+选题:[lujun9972][b]
+译者:[wahailin](https://github.com/wahailin)
+校对:[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/lujun9972
+[1]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
+[2]: https://itsfoss.com/raspberry-pi-alternatives/
+[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4.jpeg?resize=800%2C449&ssl=1
+[4]: https://itsfoss.com/linux-based-mini-pc/
+[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-tech-specs.jpg?ssl=1
+[6]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
+[7]: https://itsfoss.com/things-you-need-to-get-your-raspberry-pi-working/
+[8]: https://itsfoss.com/raspberry-pi-gets-ram-upgrade-in-the-same-price/
+[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-desktop-kit.jpg?resize=800%2C427&ssl=1
+[10]: https://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/
+[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-desktop-kit-official.jpg?ssl=1
+[12]: https://www.raspberrypi.org/products/raspberry-pi-4-desktop-kit/
diff --git a/published/20190625 5 tiny Linux distros to try before you die.md b/published/20190625 5 tiny Linux distros to try before you die.md
new file mode 100644
index 0000000000..1105ff0e52
--- /dev/null
+++ b/published/20190625 5 tiny Linux distros to try before you die.md
@@ -0,0 +1,264 @@
+[#]: collector: (lujun9972)
+[#]: translator: (chen-ni)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-11040-1.html)
+[#]: subject: (5 tiny Linux distros to try before you die)
+[#]: via: (https://opensource.com/article/19/6/linux-distros-to-try)
+[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/marcobravo)
+
+不容错过的 5 个微型 Linux 发行版
+======
+
+> 这些微型 Linux 发行版可以让你的老爷机复活,可以启动一个损坏的系统,或者是确保在公共电脑上进行安全的操作。
+
+
+
+可供日常使用的 Linux 发行版比比皆是,不过其中有一些发行版常常被我们忽视,因为它们实在是太小了。但这些微型 Linux 发行版其实是一种非常强大的创新:使用一套完整的操作系统驱动一台只有不到 1 GB 存储空间和 512 MB 内存的计算机,真的是终极的黑客作风。
+
+微型发行版的用法有很多种,比如说:
+
+ * 从垃圾桶边挽救回那些又老又慢的电脑。你可以继续使用那些本来已经计划报废的机器,直到它们彻底解体(而不是在刚开始感觉有点儿慢的时候就扔掉)。
+ * 使用 U盘启动一个损坏的系统来恢复数据或者修复启动分区。
+ * 确保在安全和隐私的操作环境下使用公共电脑。如果使用 U 盘启动酒店大厅或者图书馆里的一台公共电脑,你是可以确定操作环境是安全的。
+
+轻量级发行版有很多种,比如说 [Lubuntu][2]、[Peppermint OS][3] 和 [Bodhi][4],但是那些真正微型的发行版又有一些独到之处。下面就是你不容错过的五个微型发行版:
+
+### Tiny Core
+
+![Tiny Core Linux][5]
+
+[Tiny Core Linux][6] 小得近乎不可思议:终端版本只有 11 MB,图形界面版本只有 16 MB。我翻了一下之前收集的旧 U盘,最小的一个是 128 MB 的,也有 Tiny Core 镜像文件的八倍之大呢。
+
+Tiny Core 默认包括只包括了基本的操作系统,你需要通过以太网下载需要的应用程序。由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。
+
+我使用过一个 128 MB 的 U盘在一台只有 512 MB 内存的机器上运行了 Tiny Core,对于一个只有 16 MB 的操作系统来说,效果算是非常棒了。只有在使用网页浏览器的时候速度才会变慢,但这主要是由于大部分现代网站太过复杂,而不是 Tiny Core 的问题。
+
+如果不使用图形界面,运行 Tiny Core 就只需要 64 MB 的内存了。
+
+#### 安装
+
+[下载 Tiny Core][7] 并使用 `dd` 或者 [Etcher][8] 写入 U盘。
+
+你只需要点击屏幕底部启动栏上的 **Apps** 图标下载 **tc-install** 或者 **tc-install-GUI** 应用,就可以轻松安装 Tiny Core了。
+
+![Tiny Core installer][9]
+
+安装 Tiny Core 有几种不同的方式。你可以把它安装在一个格式化为 Linux 驱动器的 U盘里(这要求你的电脑支持使用 USB 驱动启动。大多数现代电脑都支持,但是在老一些的电脑上不太常见),或者安装在微软 FAT 文件系统的 U 盘里(这对于大多数不支持从 USB 驱动启动的电脑来说非常管用),或者甚至安装在一个现有 Linux 分区的一个文件夹里。
+
+安装过程非常快,完成之后就可以重启计算机,进入到 Tiny Core Linux 系统中啦。
+
+#### 应用程序
+
+由于系统自带程序基本上只有一个文本编辑器和一个终端,你所要做的第一件事情就应该是安装一些应用程序。底部启动栏上的 **Apps** 图标展示了 Tiny Core 提供的所有软件包。**Apps** 软件仓库同时包含了一些重要的驱动程序,对于使用 WiFi 网卡或者是打印机等等都很有帮助。
+
+在安装一个新的应用程序或者实用程序的时候,你可以选择在 Tiny Core 启动的时候就加载软件包,或者是需要的时候才加载。如果选择启动时加载,那么不仅该软件立即就可以使用,并且(不出所料地)下次重启之后也依然可用;如果选择需要时加载,那么在软件包下载完成之后仍然可以马上使用,但是重启之后就不会被自动加载到内存中了。这样可以保持很快的开机速度,并且只占用很少的内存,但同时也意味着每次开机之后,该应用的软件包只有在第一次被使用的时候才会被加载到内存中。
+
+可供选择的应用程序同时包括像 office 和图像应用之类的用户端应用,以及像 [Samba][10] 和网站服务器这种的服务端应用。
+
+当然了,随着你在 Tiny Core 上添加的应用程序越来越多,它就不那么“微型”了。不过在 Tiny Core 的网站上我们可以看到,即使是包括了所有 WiFi 驱动程序的 **Tiny Core Plus** 镜像文件也只有大约 100 MB,所以“不那么微型”也仍然很可能比 256 MB 要小很多。
+
+#### 结论
+
+Tiny Core 非常适合性能不佳的老爷机、用来通过网络启动的镜像文件,以及任何更看重应用而不是操作系统的人。Tiny Core 可以作为一个很好的周末工程来实践:从 16 MB 开始一步步搭建操作系统,直到你感觉这个操作系统已经足够满足你的需求了。
+
+### SliTaz
+
+![SliTaz Linux][11]
+
+[SliTaz Linux][12] 的镜像文件有大约 51 MB 大小,差不多是 Tiny Core 的四倍,但是包含一整套出色的驱动程序和应用程序。事实上,如果事先不知道的话,你可能会以为是通过一个 1 GB 的 Ubuntu 镜像启动的,因为能想到的任何一个基本启动镜像应该有的东西都在这儿:文本编辑器、网页浏览器、绘画工具、表格工具等等。
+
+我使用过一个 128 MB 的 U盘 在一个 512 MB 内存的机器上运行了 SliTaz,效果非常不错。浏览复杂网站的时候性能会下降,但是系统包含的轻量级浏览器 [Midori][13] 可以快速加载绝大多数网站。
+
+你可以在启动的时候选择进入没有图形界面的 SliTaz,这样在仅仅只有 64 MB 的机器上也可以很好地运行。
+
+#### 安装
+
+可供下载的 SliTaz 有很多种,因为它的开发者和社区针对可能存在的限制提供了非常多的版本。比如说,有一种低内存版本可以在只有 24 MB 内存的机器上运行;有一种版本使用 Firefox 而不是 Midori;还有一种版本没有包含额外的应用程序,等等。
+
+如果你挑花了眼,只想赶紧选择一个版本尝试一下的话,那就 [下载滚动发布版本吧][14]。这个版本有差不多 50 MB 大小,每周都会更新。如果你爱上了 SliTaz,而滚动发布版本又更新得 *过快* 了的话,可以再选择一个更符合你需求的版本。
+
+下载好你选择的 SliTaz 镜像文件之后,你就可以用 `dd` 或者 [Etcher][8] 将它写入 U 盘,然后重启。
+
+将 SliTaz 安装在 U 盘或者硬盘上需要通过 **TazPanel** 这个应用程序来实现。它会引导你对硬盘进行需要的分区,然后将 SliTaz 安装在你选择的地方。
+
+![SliTaz installer][15]
+
+#### 应用程序
+
+SliTaz 的控制中心是 **TazPanel** 这个应用程序。如果你喜欢 OpenSUSE 或者 Mageia (最初被称为 Mandrake),那 TazPanel 对你来说应该不会陌生(至少在核心思想上):包括系统设置、硬件监测、用户和用户组的管理、系统升级、安装应用程序在内的这些功能,都在这一个应用程序内实现。
+
+SliTaz 提供的应用程序可以满足大多数基本需求,如果你不是非常在意完成某一项任务必须使用哪一个应用程序的话,那么在 SliTaz 的软件仓库里应该可以找到你想要的应用。如果你有一些特别的需求(比如说想要使用 GIMP 2.10 而不是 GIMP 2.8),那么就需要学习如何生成 SliTaz 软件包了。好消息是,**tazpkg** 命令支持从好几种软件包格式转换过来,包括:
+
+ * Debian 软件包(.deb,.udeb)
+ * RPM 软件包(.rpm)
+ * Slackware 软件包(.tgz)
+ * Puppy 软件包(.sfs,.pet)
+ * NuTyX 软件包(.cards.tar.xz)
+ * Arch 和 Alpine Linux 软件包(.apk,.pkg.tar.gz,.pkg.tar.xz)
+ * OpenWrt 软件包(.ipk,.opk)
+ * Paldo 软件包(.tar.bz2)
+ * Void 软件包(.xbps)
+ * Tiny Core 软件包(.tce,.tcel,.tcem, .tcz)
+
+#### 结论
+
+SliTaz 是一个快速而小巧的 Linux 发行版,并且非常容易上手(因为有一个中心化的控制面板)。由于它的软件包工具支持从其它格式的 Linux 软件包转换成自己的格式,它的应用程序理论上来说是非常丰富的,你可以很容易地使用喜欢的工具搭建自己的工作环境。SliTaz 很小,但是也非常具有杀伤力,正如它的蜘蛛 logo 所暗示的那样。
+
+### Porteus
+
+![Porteus Linux][16]
+
+[Porteus][17] 提供了不同的桌面环境可供选择,最小的镜像文件大约在 270 MB 左右,最大的有 350 MB。它是微型 Linux 中镜像文件最大的一个,但是这些额外的空间都被用来确保一个非常顺畅的 Linux 桌面环境的体验,以至于你很可能会忘了自己是在使用一个 live 版本。如果将 Porteus 安装到 SSD 或者是在启动的时候加载到内存里的话,你就会得到一个如此天衣无缝地顺畅的环境,以至于不会相信你的操作系统所占用的空间只有不到半个 CD-ROM 的大小。
+
+Porteus 的基础镜像文件相对来说比较小,因此被称为是“微型”,但是根据你选择的桌面环境版本,Porteus 有可能会需要 1 GB 之多的内存才可以运行。尽管其它微型 Linux 发行版倾向于通过精简应用程序来节约空间和资源,Porteus 却希望你像普通发行版一样来使用它。忘掉你是在使用一个微型的压缩根文件系统,尽情安装所有你喜欢的应用程序吧。
+
+#### 安装
+
+可以在 [离你最近的 Porteus 镜像网站][18] 上下载 Porteus,并且从 MATE、LXQT、LXDE、OpenBox、XFCE、Cinnamon 或者 KDE 里选择自己喜欢的桌面环境。如果没有特殊偏好,MATE 或者是 KDE 桌面都是不错的选择,他们可以提供熟悉的桌面环境体验,并且镜像文件又不至于太大。
+
+![Porteus installer][19]
+
+你可以根据 [官方的安装指南][20] 将 Porteus 安装到一个 U盘 或者是内部硬盘里。这两种方式非常相似,都会使用一个不可变的压缩根文件系统。这是一种稳定的、受限制的文件系统,会根据你的使用被修改。你所做的变更和安装的应用程序在重启的时候都会被加载到内存里,从而还原你关机前的使用环境。
+
+#### 应用程序
+
+应用程序在 Porteus 里被称为“模块”,由 [Slackware 软件包统一管理器][21](USM)提供。USM 的资源涵盖五个不同的 Slackware 软件仓库,所以可供选择的应用还是很丰富的。
+
+#### 结论
+
+Porteus 可以提供完整的 Linux 使用体验,却只使用了正常 Linux 所需要空间的一小部分。这是一个配备了很多种可供选择的桌面环境和很多应用程序的出色的便携式 Linux 发行版。
+
+### Bodhi Linux
+
+![Bodhi Linux][22]
+
+[Bodhi Linux][4] 的 ISO 镜像文件有 740 MB 大小,初看之下并不是很“微型”,不过一旦安装完成之后,你就会惊讶于它是多么微型了。Bodhi 在 512 MB 大小的内存上也可以顺畅运行,并且它的桌面环境看起来就像是来自未来一样。Bodhi 使用的是 [Enlightenment][23] 桌面,这是一个精心制作的优美的用户界面,小巧而强悍。
+
+不过 Bodhi 并不只是简单地使用 Enlightenment,而是在此基础上增色不少。Bodhi 在配置型应用程序和系统设置面板上都进行了界面处理,避免了 Enlightenment 有时显得过于繁复的选项。Bodhi 替你做了一些很好的默认选择,并且只显示全部选项的一部分。如果你是一个 Enlightenment 狂热分子,那么 Bodhi 这样的做法对你来说可能显得不是很纯粹,但是对于大多数用户来说,Bodhi 这样做可以让人更加专注于 Enlightenment 桌面本身。
+
+#### 安装
+
+[下载 Bodhi Linux][24],通过 `dd` 或者 [Etcher][8] 写入 U盘,然后重启。
+
+Bodhi 安装器可以在 **设置** 页面的 **应用程序** 菜单里找到。安装程序用的是 **Ubiquity**,所以整个过程和安装 Ubuntu 是一样的。如果你没有安装过 Ubuntu 也不必担心,因为这是最好安装的发行版之一了。
+
+![Bodhi installer][25]
+
+#### 应用程序
+
+Bodhi 是基于最新的 Ubuntu 长期维护发布版的,所以可供使用的应用程序简直数不胜数。只要是在 Ubuntu 上可以使用的应用,Bohdi 上就同样可以找到。
+
+#### 结论
+
+Bodhi Linux 相比一个标准的 Ubuntu 来说要小不少,但是相比其它微型 Ubuntu 环境来说又好一些(因为使用了 Enlightenment)。如果你在找一个比大多数发行版更轻量的 Linux 发行版,但是又不想使用 OverlayFS 或者是应用程序模块的话,那么 Bodhi 就是一个不错的选择了。
+
+### Puppy Linux
+
+![Puppy Linux][26]
+
+早在 Tiny Core、SliTaz、[AntiX][27] 或者是 Porteus 诞生之前,就已经有 [Puppy Linux][28] 了。作为最早的微型 Linux 发行版之一,Puppy 已经历经了十五年风霜,并且无论是对于老爷机还是新用户来说始终都是一个可靠的、可启动的操作系统。
+
+为了保证正常运行,Puppy 会在第一次启动之后引导用户完成必要的设置步骤。整个过程涉及很多个窗口,但是一旦完成,你就会对一切功能了如指掌,然后再决定是否需要安装。
+
+Puppy 几乎有 300 MB 大小,并且在我测试的 1 GB 内存的机器上并不能正常运行,所以它并不是一个特别微型的 Linux 发行版。尽管如此,它仍然是一个非常棒的 1 GB 以下的操作系统,并且在该类系统里算是非常友好的一个。
+
+#### 安装
+
+[下载 Puppy Linux][29],然后通过 `dd` 或 [Etcher][8] 写入 U 盘,或者是刻录到 CD 或者 DVD 里,然后重启。
+
+![Puppy installer][30]
+
+Puppy 几乎可以安装在支持任何一种数据格式的载体上。你可以在顶部启动栏里找到 **Puppy Installer** 安装程序,这个程序负责安装 Puppy 以及 Puppy 的应用程序。
+
+Puppy 安装器会一步步引导你将系统安装在你提供的任何一种媒介上。Puppy 可以从 U盘、光盘、硬盘,或者甚至是 SD 卡上启动。我曾经在一台没有硬盘、光驱出了故障,并且也无法从 USB 启动的计算机上成功运行了 Puppy。由于 Puppy 支持在任何载体上写入你的配置选项,我甚至可以在一个拥有长期数据存储的外部设备上使用它。
+
+#### 应用程序
+
+**Puppy 安装器** 这个应用同样被用来在 Puppy 上安装应用。由于 Puppy 是基于 Ubuntu 的,它的软件仓库几乎不会缺少任何一个 Linux 软件包,并且如果真的出现了这种情况的话,你也可以使用 [Flatpak][31]。
+
+#### 结论
+
+Puppy 是最早的微型 Linux。尽管它已经不是最微型的了,却是目前最易用的一个。
+
+### 附赠:Silverblue
+
+![SilverBlue, not tiny, but tiny-adjacent][32]
+
+微型 Linux 这个概念是随着时间不断变化的。很久以前,微型 Linux 发行版意味着需要下载到 CD-R 里,从光驱启动,然后将修改写入外部媒介中。后来,你可以从 U 盘启动它,并且有专门用来记录永久修改的空间。现在的微型 Linux 不仅支持上面两种方法,还可以被直接安装在内部驱动或者文件夹里。
+
+大家都没有想到 Linux 开创了容器的热潮 —— 容器里应用程序是在半虚拟化的环境中运行的一套独立的 Linux 系统。曾经只是属于喜欢优化硬盘空间或者重新利用老爷机的人们的小众爱好,很快成为了那些想要开发容器但又不想在应用程序上添加太多负载的人的强烈需求。那些在极简化的、不起眼的 Linux 发行版上所付出的辛苦,一夜之间以一种意想不到的方式得到了回报。
+
+立足于根文件系统这个概念,Fedora 项目发起的 [Silverblue][33] 试验旨在创造一个不可修改的操作系统。该操作系统主要通过容器的形式来更新系统以及安装应用,系统本身永远不会改变。
+
+2.1 GB 的 Silverblue 可不是一个微型 Linux 发行版,但是从某种程度上来说,它是微型 Linux 和容器运动的产物。
+
+#### 安装
+
+[下载 Silverblue][34],然后通过 `dd` 琥或 [Etcher][8] 写入 U 盘,或者是刻录到 CD 或者 DVD 里,然后重启。
+
+启动到 Silverblue 之后,使用 [Anaconda][35](标准的、友好的 Fedora 安装器)将它安装在一个内部硬盘里。
+
+![Anaconda installer][36]
+
+#### 应用程序
+
+Silverblue 安装应用的方式和传统意义上不同:它是在基础操作系统之上运行容器。具体来说,它使用 Flatpak 运行 GUI 应用程序,使用 [Toolbox][37] 运行命令。
+
+由于 Flatpak 并非像传统的 Fedora RPM 软件包一样常见,Silverblue 也提供了一种可以将 Fedora RPM 软件包转换成 Silverblue 形式的方法:**软件包分层**。
+
+#### 结论
+
+Silverblue 可能是一个用来尝试前沿科技的有趣实验,或者也可能是桌面操作系统的未来。它之所以被称为微型,只是因为根文件系统的大小不会随着系统升级或者安装应用而改变。不过,透过 Silverblue 来看看对微型 Linux 的迷恋在带领着 Linux 社区和行业往哪个方向走,也是一件挺有意思的事情。对了,走之前不要忘了向 11 MB 大小的微型 Linux 先驱们脱帽致敬。
+
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/linux-distros-to-try
+
+作者:[Seth Kenlon][a]
+选题:[lujun9972][b]
+译者:[chen-ni](https://github.com/chen-ni)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth/users/marcobravo
+[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]: http://lubuntu.net
+[3]: http://peppermintos.com
+[4]: https://www.bodhilinux.com/
+[5]: https://opensource.com/sites/default/files/uploads/tinycore.jpg (Tiny Core Linux)
+[6]: http://tinycorelinux.net/
+[7]: http://tinycorelinux.net/welcome.html
+[8]: https://www.balena.io/etcher/
+[9]: https://opensource.com/sites/default/files/uploads/tc-install-gui.png (Tiny Core installer)
+[10]: https://www.samba.org/
+[11]: https://opensource.com/sites/default/files/uploads/slitaz.jpg (SliTaz Linux)
+[12]: http://www.slitaz.org/en/
+[13]: https://github.com/midori-browser/core
+[14]: http://slitaz.org/en/get/#rolling
+[15]: https://opensource.com/sites/default/files/uploads/slitaz-install.jpg (SliTaz installer)
+[16]: https://opensource.com/sites/default/files/uploads/porteus.jpg (Porteus Linux)
+[17]: http://www.porteus.org/
+[18]: http://porteus.org/porteus-mirrors.txt
+[19]: https://opensource.com/sites/default/files/images/porteus-installer.png (Porteus installer)
+[20]: http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/114-official-porteus-installation-guide.html
+[21]: http://www.porteus.org/tutorials/9-modules/149-usm.html
+[22]: https://opensource.com/sites/default/files/uploads/bodhi.jpg (Bodhi Linux)
+[23]: https://www.enlightenment.org/
+[24]: https://www.bodhilinux.com/download
+[25]: https://opensource.com/sites/default/files/uploads/bodhi-install.jpg (Bodhi installer)
+[26]: https://opensource.com/sites/default/files/uploads/puppy.jpg (Puppy Linux)
+[27]: https://antixlinux.com/
+[28]: http://puppylinux.com/
+[29]: http://puppylinux.com/index.html#download
+[30]: https://opensource.com/sites/default/files/uploads/puppy-install.jpg (Puppy installer)
+[31]: https://docs.fedoraproject.org/en-US/fedora-silverblue/getting-started/#flatpak
+[32]: https://opensource.com/sites/default/files/uploads/silverblue.jpg (SilverBlue, not tiny, but tiny-adjacent)
+[33]: https://silverblue.fedoraproject.org/
+[34]: https://silverblue.fedoraproject.org/download
+[35]: https://fedoraproject.org/wiki/Anaconda
+[36]: https://opensource.com/sites/default/files/uploads/silverblue-install.jpg (Anaconda installer)
+[37]: https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/
diff --git a/sources/news/20190606 Cisco to buy IoT security, management firm Sentryo.md b/sources/news/20190606 Cisco to buy IoT security, management firm Sentryo.md
deleted file mode 100644
index cc90793305..0000000000
--- a/sources/news/20190606 Cisco to buy IoT security, management firm Sentryo.md
+++ /dev/null
@@ -1,106 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (hopefully2333)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Cisco to buy IoT security, management firm Sentryo)
-[#]: via: (https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html)
-[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
-
-Cisco to buy IoT security, management firm Sentryo
-======
-Buying Sentryo will give Cisco support for anomaly and real-time threat detection for the industrial internet of things.
-![IDG Worldwide][1]
-
-Looking to expand its IoT security and management offerings Cisco plans to acquire [Sentryo][2], a company based in France that offers anomaly detection and real-time threat detection for Industrial Internet of Things ([IIoT][3]) networks.
-
-Founded in 2014 Sentryo products include ICS CyberVision – an asset inventory, network monitoring and threat intelligence platform – and CyberVision network edge sensors, which analyze network flows.
-
-**More on IoT:**
-
- * [What is the IoT? How the internet of things works][4]
- * [What is edge computing and how it’s changing the network][5]
- * [Most powerful Internet of Things companies][6]
- * [10 Hot IoT startups to watch][7]
- * [The 6 ways to make money in IoT][8]
- * [What is digital twin technology? [and why it matters]][9]
- * [Blockchain, service-centric networking key to IoT success][10]
- * [Getting grounded in IoT networking and security][11]
- * [Building IoT-ready networks must become a priority][12]
- * [What is the Industrial IoT? [And why the stakes are so high]][13]
-
-
-
-“We have incorporated Sentryo’s edge sensor and our industrial networking hardware with Cisco’s IOx application framework,” wrote Rob Salvagno, Cisco vice president of Corporate Development and Cisco Investments in a [blog][14] about the proposed buy.
-
-“We believe that connectivity is foundational to IoT projects and by unleashing the power of the network we can dramatically improve operational efficiencies and uncover new business opportunities. With the addition of Sentryo, Cisco can offer control systems engineers deeper visibility into assets to optimize, detect anomalies and secure their networks.”
-
-Gartner [wrote][15] of Sentryo’s system: “ICS CyberVision product provides visibility into its customers'' OT networks in way all OT users will understand, not just technical IT staff. With the increased focus of both hackers and regulators on industrial control systems, it is vital to have the right visibility of an organization’s OT. Many OT networks not only are geographically dispersed, but also are complex and consist of hundreds of thousands of components.”
-
-Sentryo's ICS CyberVision lets enterprises ensure continuity, resilience and safety of their industrial operations while preventing possible cyberattacks, said [Nandini Natarajan][16] , industry analyst at Frost & Sullivan. "It automatically profiles assets and communication flows using a unique 'universal OT language' in the form of tags, which describe in plain text what each asset is doing. ICS CyberVision gives anyone immediate insights into an asset's role and behaviors; it offers many different analytic views leveraging artificial intelligence algorithms to let users deep-dive into the vast amount of data a typical industrial control system can generate. Sentryo makes it easy to see important or relevant information."
-
-In addition, Sentryo's platform uses deep packet inspection (DPI) to extract information from communications among industrial assets, Natarajan said. This DPI engine is deployed through an edge-computing architecture that can run either on Sentryo sensor appliances or on network equipment that is already installed. Thus, Sentryo can embed visibility and cybersecurity features in the industrial network rather than deploying an out-of-band monitoring network, Natarajan said.
-
-**[[Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][17] ]**
-
-Sentryo’s technology will broaden [Cisco’s][18] overarching IoT plan. In January it [launched][19] a family of switches, software, developer tools and blueprints to meld IoT and industrial networking with [intent-based networking][20] (IBN) and classic IT security, monitoring and application-development support.
-
-The new platforms can be managed by Cisco’s DNA Center, and Cisco IoT Field Network Director, letting customers fuse their IoT and industrial-network control with their business IT world.
-
-DNA Center is Cisco’s central management tool for enterprise networks, featuring automation capabilities, assurance setting, fabric provisioning and policy-based segmentation. It is also at the center of the company’s IBN initiative offering customers the ability to automatically implement network and policy changes on the fly and ensure data delivery. The IoT Field Network Director is software that manages multiservice networks of Cisco industrial, connected grid routers and endpoints.
-
-Liz Centoni, senior vice president and general manager of Cisco's IoT business group said the company expects the [Sentryo technology to help][21] IoT customers in a number of ways:
-
-Network-enabled, passive DPI capabilities to discover IoT and OT assets, and establish communication patterns between devices and systems. Sentryo’s sensor is natively deployable on Cisco’s IOx framework and can be built into the industrial network these devices run on instead of adding additional hardware.
-
-As device identification and communication patterns are created, Cisco will integrate this with DNA Center and Identity Services Engine(ISE) to allow customers to easily define segmentation policy. This integration will allow OT teams to leverage IT security teams’ expertise to secure their environments without risk to the operational processes.
-
-With these IoT devices lacking modern embedded software and security capabilities, segmentation will be the key technology to allow communication from operational assets to the rightful systems, and reduce risk of cyber security incidents like we saw with [WannaCry][22] and [Norsk Hydro][23].
-
-According to [Crunchbase][24], Sentryo has $3.5M in estimated revenue annually and it competes most closely with Cymmetria, Team8, and Indegy. The acquisition is expected to close before the end of Cisco’s Q1 Fiscal Year 2020 -- October 26, 2019. Financial details of the acquisition were not detailed.
-
-Sentryo is Cisco’s second acquisition this year. It bought Singularity for its network analytics technology in January. In 2018 Cisco bought six companies including Duo security software.
-
-** **
-
-Join the Network World communities on [Facebook][25] and [LinkedIn][26] to comment on topics that are top of mind.
-
---------------------------------------------------------------------------------
-
-via: https://www.networkworld.com/article/3400847/cisco-to-buy-iot-security-management-firm-sentryo.html
-
-作者:[Michael Cooney][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://www.networkworld.com/author/Michael-Cooney/
-[b]: https://github.com/lujun9972
-[1]: https://images.idgesg.net/images/article/2018/09/nwan_019_iiot-100771131-large.jpg
-[2]: https://www.sentryo.net/
-[3]: https://www.networkworld.com/article/3243928/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
-[4]: https://www.networkworld.com/article/3207535/internet-of-things/what-is-the-iot-how-the-internet-of-things-works.html
-[5]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
-[6]: https://www.networkworld.com/article/2287045/internet-of-things/wireless-153629-10-most-powerful-internet-of-things-companies.html
-[7]: https://www.networkworld.com/article/3270961/internet-of-things/10-hot-iot-startups-to-watch.html
-[8]: https://www.networkworld.com/article/3279346/internet-of-things/the-6-ways-to-make-money-in-iot.html
-[9]: https://www.networkworld.com/article/3280225/internet-of-things/what-is-digital-twin-technology-and-why-it-matters.html
-[10]: https://www.networkworld.com/article/3276313/internet-of-things/blockchain-service-centric-networking-key-to-iot-success.html
-[11]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html
-[12]: https://www.networkworld.com/article/3276304/internet-of-things/building-iot-ready-networks-must-become-a-priority.html
-[13]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
-[14]: https://blogs.cisco.com/news/cisco-industrial-iot-news
-[15]: https://www.globenewswire.com/news-release/2018/06/28/1531119/0/en/Sentryo-Named-a-Cool-Vendor-by-Gartner.html
-[16]: https://www.linkedin.com/pulse/industrial-internet-things-iiot-decoded-nandini-natarajan/
-[17]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
-[18]: https://www.cisco.com/c/dam/en_us/solutions/iot/ihs-report.pdf
-[19]: https://www.networkworld.com/article/3336454/cisco-goes-after-industrial-iot.html
-[20]: https://www.networkworld.com/article/3202699/what-is-intent-based-networking.html
-[21]: https://blogs.cisco.com/news/securing-the-internet-of-things-cisco-announces-intent-to-acquire-sentryo
-[22]: https://blogs.cisco.com/security/talos/wannacry
-[23]: https://www.securityweek.com/norsk-hydro-may-have-lost-40m-first-week-after-cyberattack
-[24]: https://www.crunchbase.com/organization/sentryo#section-web-traffic-by-similarweb
-[25]: https://www.facebook.com/NetworkWorld/
-[26]: https://www.linkedin.com/company/network-world
diff --git a/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md b/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md
index 8c5c5decf9..35ba13853d 100644
--- a/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md
+++ b/sources/news/20190607 Free and Open Source Trello Alternative OpenProject 9 Released.md
@@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
-[#]: translator: ( )
+[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
diff --git a/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md
deleted file mode 100644
index 52fcdc0569..0000000000
--- a/sources/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md
+++ /dev/null
@@ -1,88 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (BitTorrent Client Deluge 2.0 Released: Here’s What’s New)
-[#]: via: (https://itsfoss.com/deluge-2-release/)
-[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
-
-BitTorrent Client Deluge 2.0 Released: Here’s What’s New
-======
-
-You probably already know that [Deluge][1] is one of the [best Torrent clients available for Linux users][2]. However, the last stable release was almost two years back.
-
-Even though it was in active development, a major stable release wasn’t there – until recently. The latest version while we write this happens to be 2.0.2. So, if you haven’t downloaded the latest stable version – do try it out.
-
-In either case, if you’re curious, let us talk about what’s new.
-
-![Deluge][3]
-
-### Major improvements in Deluge 2.0
-
-The new release introduces multi-user support – which was a much needed addition.
-
-In addition to that, there has been several performance improvements to handle more torrents with faster loading times.
-
-Also, with version 2.0, Deluge used Python 3 with minimal support for Python 2.7. Even for the user interface, they migrated from GTK UI to GTK3.
-
-As per the release notes, there are several more significant additions/improvements, which include:
-
- * Multi-user support.
- * Performance updates to handle thousands of torrents with faster loading times.
- * A New Console UI which emulates GTK/Web UIs.
- * GTK UI migrated to GTK3 with UI improvements and additions.
- * Magnet pre-fetching to allow file selection when adding torrent.
- * Fully support libtorrent 1.2 release.
- * Language switching support.
- * Improved documentation hosted on ReadTheDocs.
- * AutoAdd plugin replaces built-in functionality.
-
-
-
-### How to install or upgrade to Deluge 2.0
-
-![][4]
-
-You should follow the official [installation guide][5] (using PPA or PyPi) for any Linux distro. However, if you are upgrading, you should go through the note mentioned in the release note:
-
-“_Deluge 2.0 is not compatible with Deluge 1.x clients or daemons so these will require upgrading too._ _Also_ _third-party Python scripts may not be compatible if they directly connect to the Deluge client and will need migrating._“
-
-So, they insist to always make a backup of your [config][6] before a major version upgrade to guard against data loss.
-
-[][7]
-
-Suggested read Ubuntu's Snap Apps Website Gets Much Needed Improvements
-
-And, if you are an author of a plugin, you need to upgrade it make it compatible with the new release.
-
-Direct download app packages not yet available for Windows and Mac OS. However, the release note mentions that they are being worked on.
-
-As an alternative, you can install them manually by following the [installation guide][5] in the updated official documentation.
-
-**Wrapping Up**
-
-What do you think about the latest stable release? Do you utilize Deluge as your BitTorrent client? Or do you find something else as a better alternative?
-
-Let us know your thoughts in the comments below.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/deluge-2-release/
-
-作者:[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://itsfoss.com/author/ankush/
-[b]: https://github.com/lujun9972
-[1]: https://dev.deluge-torrent.org/
-[2]: https://itsfoss.com/best-torrent-ubuntu/
-[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/deluge.jpg?fit=800%2C410&ssl=1
-[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/Deluge-2-release.png?resize=800%2C450&ssl=1
-[5]: https://deluge.readthedocs.io/en/latest/intro/01-install.html
-[6]: https://dev.deluge-torrent.org/wiki/Faq#WheredoesDelugestoreitssettingsconfig
-[7]: https://itsfoss.com/snap-store/
diff --git a/sources/news/20190624 Raspberry Pi 4 is here.md b/sources/news/20190624 Raspberry Pi 4 is here.md
deleted file mode 100644
index bba028bf68..0000000000
--- a/sources/news/20190624 Raspberry Pi 4 is here.md
+++ /dev/null
@@ -1,92 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (wahailin)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Raspberry Pi 4 is here!)
-[#]: via: (https://opensource.com/article/19/6/raspberry-pi-4)
-[#]: author: (Ben Nuttall https://opensource.com/users/bennuttall)
-
-Raspberry Pi 4 is here!
-======
-A new version of the $35 computer features a 1.5GHz Arm chip and support
-for dual-HDMI 4K displays, Gigabit Ethernet, and much more.
-![Raspberry Pi 4 board][1]
-
-The latest version of the Raspberry Pi—Raspberry Pi 4—was released today, earlier than anticipated, featuring a new 1.5GHz Arm chip and VideoCore GPU with some brand new additions: dual-HDMI 4K display output; USB3 ports; Gigabit Ethernet; and multiple RAM options up to 4GB.
-
-![Raspberry Pi 4 case][2]
-
-The Raspberry Pi 4 is a very powerful single-board computer and starts at the usual price of $35. That gets you the standard 1GB RAM, or you can pay $45 for the 2GB model or $55 for the 4GB model—premium-priced models are a first for Raspberry Pi.
-
-The specs at-a-glance:
-
- * 64-bit BCM2711 quad-core A72 CPU @ 1.5GHz
- * VideoCore VI GPU
- * Gigabit Ethernet port
- * 1GB, 2GB, or 4GB LPDDR4 RAM
- * Two Micro-HDMI ports
- * Two USB3 ports
- * Two USB2 ports
- * Dual-band (2.4GHz and 5GHz) WiFi
- * Bluetooth 5.0
- * USB Type C power port
- * CSI camera interface
- * DSI display interface
- * MicroSD card slot
- * Power-over-Ethernet pins
- * Full compatibility with all previous Raspberry Pi models
-
-
-
-### USB and networking
-
-The Raspberry Pi 4 has the benefit of having USB3; it's powered by a USB Type C cable and provides two USB3 ports and two USB2 ports. You can now connect USB3 hard drives and other peripherals and get faster connectivity.
-
-![Raspberry Pi 4 USBs][3]
-
-The BCM2835-based chip in Raspberry Pi 1 to 3 provided just one native USB port and no Ethernet, so a USB hub on the board provided more USB ports and an Ethernet port. The 3B+ added a dedicated LAN chip, which gave it Gigabit Ethernet, but this was limited to USB2 speeds. The Pi 4 has dedicated Gigabit Ethernet, and because it's no longer throttled over USB, its networking speeds are much faster.
-
-The Pi 4 takes advantage of the technology built into the 3B+ that made it the first single-board computer with dual-band WiFi. This means you can connect to both 2.4GHz and 5GHz networks.
-
-### Displays
-
-When the first Raspberry Pi launched, the balance of its CPU and GPU performance was tipped heavily in favor of the GPU. The VideoCore IV was a very powerful graphics processor, capable of full-HD 1080p multimedia, which is why the Pi has always been popular as a home media center. The Pi 2 rebalanced things somewhat and brought the CPU in line, taking the Pi from a single-core to a quad-core Arm chip. The Pi 4 takes both factors a big step forward. The new VideoCore VI GPU gives the Pi 4K video and allows two displays via the board's two Micro-HDMI ports (selected to keep the board the same size), so you'll need an adapter or a Micro-to-full HDMI cable to use an HDMI monitor.
-
-Dual displays are a godsend when you need more screen real estate to keep eye contact with multiple windows—if you're programming you might have your code on one screen and the website or app you're building; your database; your web browser; your emails, or anything else on the other. For the first time, development on Raspberry Pi won't be limited to a single monitor. It's also handy if you want to build a Pi-based project with different things on different screens.
-
-The Pi also has a Display Serial Interface (DSI) port to drive another special display—not another monitor per se, but the official Raspberry Pi touch screen display connected via a flex cable.
-
-### Raspbian Buster
-
-This Raspberry Pi 4's launch coincides with a major Debian release, and the fact the new Pi supports OpenGL ES 3 means it makes sense for any software developed for the Pi 4 to target Raspbian Buster. Buster brings a few user interface tweaks and a whole host of software upgrades, including Python 3.7.
-
-![Raspbian Buster][4]
-
-### Open source graphics drivers
-
-Over the last five years, Eric Anholt has been working to write open source graphics drivers for the Raspberry Pi. Now, Raspbian can use this driver to deliver accelerated web browsing, desktop graphics, and 3D applications on the Pi. This replaces a large chunk of closed-source code that was previously required. Huge thanks to Eric and Broadcom for this effort.
-
-Previously, the Raspberry Pi 4 was expected to be yet another year away, but the chip design turned out to be ready for production much earlier than anticipated, so here it is!
-
-* * *
-
-_The Raspberry Pi 4 is on sale now. Which model will you opt for? Let us know your plans in the comments!_
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/19/6/raspberry-pi-4
-
-作者:[Ben Nuttall][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/bennuttall
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/raspberry-pi-4_lead.jpg?itok=2bkk43om (Raspberry Pi 4 board)
-[2]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-case.jpg (Raspberry Pi 4 case)
-[3]: https://opensource.com/sites/default/files/uploads/raspberry-pi-4-usb.jpg (Raspberry Pi 4 USBs)
-[4]: https://opensource.com/sites/default/files/uploads/raspbian-buster.png (Raspbian Buster)
diff --git a/sources/talk/20190604 5G will augment Wi-Fi, not replace it.md b/sources/talk/20190604 5G will augment Wi-Fi, not replace it.md
deleted file mode 100644
index 76346907f3..0000000000
--- a/sources/talk/20190604 5G will augment Wi-Fi, not replace it.md
+++ /dev/null
@@ -1,102 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (GraveAccent)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (5G will augment Wi-Fi, not replace it)
-[#]: via: (https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html)
-[#]: author: (Zeus Kerravala https://www.networkworld.com/author/Zeus-Kerravala/)
-
-5G will augment Wi-Fi, not replace it
-======
-Jeff Lipton, vice president of strategy and corporate development at Aruba, adds a dose of reality to the 5G hype, discussing how it and Wi-Fi will work together and how to maximize the value of both.
-![Thinkstock][1]
-
-There’s arguably no technology topic that’s currently hotter than [5G][2]. It was a major theme of the most recent [Mobile World Congress][3] show and has reared its head in other events such as Enterprise Connect and almost every vendor event I attend.
-
-Some vendors have positioned 5G as a panacea to all network problems and predict it will eradicate all other forms of networking. Views like that are obviously extreme, but I do believe that 5G will have an impact on the networking industry and is something that network engineers should be aware of.
-
-To help bring some realism to the 5G hype, I recently interviewed Jeff Lipton, vice president of strategy and corporate development at Aruba, a Hewlett Packard company, as I know HPE has been deeply involved in the evolution of both 5G and Wi-Fi.
-
-**[ Also read:[The time of 5G is almost here][3] ]**
-
-### Zeus Kerravala: 5G is being touted as the "next big thing." Do you see it that way?
-
-**Jeff Lipton:** The next big thing is connecting "things" and generating actionable insights and context from those things. 5G is one of the technologies that serve this trend. Wi-Fi 6 is another — so are edge compute, Bluetooth Low Energy (BLE), artificial intelligence (AI) and machine learning (ML). These all are important, and they each have a place.
-
-### Do you see 5G eclipsing Wi-Fi in the enterprise?
-
-![Jeff Lipton, VP of strategy and corporate development, Aruba][4]
-
-**Lipton:** No. 5G, like all cellular access, is appropriate if you need macro area coverage and high-speed handoffs. But it’s not ideal for most enterprise applications, where you generally don’t need these capabilities. From a performance standpoint, [Wi-Fi 6][5] and 5G are roughly equal on most metrics, including throughput, latency, reliability, and connection density. Where they aren’t close is economics, where Wi-Fi is far better. I don’t think many customers would be willing to trade Wi-Fi for 5G unless they need macro coverage or high-speed handoffs.
-
-### Can Wi-Fi and 5G coexist? How would an enterprise use 5G and Wi-Fi together?
-
-**Lipton:** Wi-Fi and 5G can and should be complementary. The 5G architecture decouples the cellular core and Radio Access Network (RAN). Consequently, Wi-Fi can be the enterprise radio front end and connect tightly with a 5G core. Since the economics of Wi-Fi — especially Wi-Fi 6 — are favorable and performance is extremely good, we envision many service providers using Wi-Fi as the radio front end for their 5G systems where it makes sense, as an alternative to Distributed Antenna (DAS) and small-cell systems.
-
-Wi-Fi and 5G can and should be complementary." — Jeff Lipton
-
-### If a business were considering moving to 5G only, how would this be done and how practical is it?
-
-**Lipton:** To use 5G for primary in-building access, a customer would need to upgrade their network and virtually all of their devices. 5G provides good coverage outdoors, but cellular signals can’t reliably penetrate buildings. And this problem will become worse with 5G, which partially relies on higher frequency radios. So service providers will need a way to provide indoor coverage. To provide this coverage, they propose deploying DAS or small-cell systems — paid for by the end customer. The customers would then connect their devices directly to these cellular systems and pay a service component for each device.
-
-**[[Take this mobile device management course from PluralSight and learn how to secure devices in your company without degrading the user experience.][6] ]**
-
-There are several problems with this approach. First, DAS and small-cell systems are significantly more expensive than Wi-Fi networks. And the cost doesn’t stop with the network. Every device would need to have a 5G cellular modem, which costs tens of dollars wholesale and usually over a hundred dollars to an end user. Since few, if any MacBooks, PCs, printers or AppleTVs today have 5G modems, these devices would need to be upgraded. I don’t believe many enterprises would be willing to pay this additional cost and upgrade most of their equipment for an unclear benefit.
-
-### Are economics a factor in the 5G versus Wi-Fi debate?
-
-**Lipton:** Economics is always a factor. Let’s focus the conversation on in-building enterprise applications, since this is the use case some carriers intend to target with 5G. We’ve already mentioned that upgrading to 5G would require enterprises to deploy expensive DAS or small-cell systems for in-building coverage, upgrade virtually all of their equipment to contain 5G modems, and pay service contracts for each of these devices. It’s also important to understand 5G cellular networks and DAS systems operate over licensed spectrum, which is analogous to a private highway. Service providers paid billions of dollars for this spectrum, and this expense needs to be monetized and embedded in service costs. So, from both deployment and lifecycle perspectives, Wi-Fi economics are favorable to 5G.
-
-### Are there any security implications of 5G versus Wi-Fi?
-
-**Lipton:** Cellular technologies are perceived by some to be more secure than Wi-Fi, but that’s not true. LTE is relatively secure, but it also has weak points. For example, LTE is vulnerable to a range of attacks, including data interception and device tracking, according to researchers at Purdue and the University of Iowa. 5G improves upon LTE security with multiple authentication methods and better key management.
-
-Wi-Fi security isn’t standing still either and continues to advance. Of course, Wi-Fi implementations that do not follow best practices, such as those without even basic password protection, are not optimal. But those configured with proper access controls and passwords are highly secure. With new standards — specifically, WPA3 and Enhanced Open — Wi-Fi network security has improved even further.
-
-It’s also important to keep in mind that enterprises have made enormous investments in security and compliance solutions tailored to their specific needs. With cellular networks, including 5G, enterprises lose the ability to deploy their chosen security and compliance solutions, as well as most visibility into traffic flows. While future versions of 5G will offer high-levels of customization with a feature called network slicing, enterprises would still lose the level of security and compliance customization they currently need and have.
-
-### Any parting thoughts to add to the discussion around 5G versus Wi-Fi?
-
-**Lipton:** The debate around Wi-Fi versus 5G misses the point. They each have their place, and they are in many ways complementary. The Wi-Fi and 5G markets both will grow, driven by the need to connect and analyze a growing number of things. If a customer needs macro coverage or high-speed handoffs and can pay the additional cost for these capabilities, 5G makes sense.
-
-5G also could be a fit for certain industrial use cases where customers require physical network segmentation. But for the vast majority of enterprise customers, Wi-Fi will continue to prove its value as a reliable, secure, and cost-effective wireless access technology, as it does today.
-
-**More about 802.11ax (Wi-Fi 6):**
-
- * [Why 802.11ax is the next big thing in wireless][7]
- * [FAQ: 802.11ax Wi-Fi][8]
- * [Wi-Fi 6 (802.11ax) is coming to a router near you][9]
- * [Wi-Fi 6 with OFDMA opens a world of new wireless possibilities][10]
- * [802.11ax preview: Access points and routers that support Wi-Fi 6 are on tap][11]
-
-
-
-Join the Network World communities on [Facebook][12] and [LinkedIn][13] to comment on topics that are top of mind.
-
---------------------------------------------------------------------------------
-
-via: https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html
-
-作者:[Zeus Kerravala][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://www.networkworld.com/author/Zeus-Kerravala/
-[b]: https://github.com/lujun9972
-[1]: https://images.idgesg.net/images/article/2019/05/wireless_connection_speed_connectivity_bars_cell_tower_5g_by_thinkstock-100796921-large.jpg
-[2]: https://www.networkworld.com/article/3203489/what-is-5g-how-is-it-better-than-4g.html
-[3]: https://www.networkworld.com/article/3354477/mobile-world-congress-the-time-of-5g-is-almost-here.html
-[4]: https://images.idgesg.net/images/article/2019/06/headshot_jlipton_aruba-100798360-small.jpg
-[5]: https://www.networkworld.com/article/3215907/why-80211ax-is-the-next-big-thing-in-wi-fi.html
-[6]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Fmobile-device-management-big-picture
-[7]: https://www.networkworld.com/article/3215907/mobile-wireless/why-80211ax-is-the-next-big-thing-in-wi-fi.html
-[8]: https://%20https//www.networkworld.com/article/3048196/mobile-wireless/faq-802-11ax-wi-fi.html
-[9]: https://www.networkworld.com/article/3311921/mobile-wireless/wi-fi-6-is-coming-to-a-router-near-you.html
-[10]: https://www.networkworld.com/article/3332018/wi-fi/wi-fi-6-with-ofdma-opens-a-world-of-new-wireless-possibilities.html
-[11]: https://www.networkworld.com/article/3309439/mobile-wireless/80211ax-preview-access-points-and-routers-that-support-the-wi-fi-6-protocol-on-tap.html
-[12]: https://www.facebook.com/NetworkWorld/
-[13]: https://www.linkedin.com/company/network-world
diff --git a/sources/talk/20190626 Juniper-s Mist adds WiFi 6, AI-based cloud services to enterprise edge.md b/sources/talk/20190626 Juniper-s Mist adds WiFi 6, AI-based cloud services to enterprise edge.md
new file mode 100644
index 0000000000..0548e968fe
--- /dev/null
+++ b/sources/talk/20190626 Juniper-s Mist adds WiFi 6, AI-based cloud services to enterprise edge.md
@@ -0,0 +1,94 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Juniper’s Mist adds WiFi 6, AI-based cloud services to enterprise edge)
+[#]: via: (https://www.networkworld.com/article/3405123/juniper-s-mist-adds-wifi-6-ai-based-cloud-services-to-enterprise-edge.html)
+[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
+
+Juniper’s Mist adds WiFi 6, AI-based cloud services to enterprise edge
+======
+Mist, a Juniper Networks company, has rolled out an artificial-intelligence, cloud-based appliance and a WIFI 6 access point aimed at helping users roll out smart, high-density wireless networks.
+![Getty Images][1]
+
+Mist, now a Juniper Networks company, has rolled out an artificial-intelligence, cloud-based appliance and a WiFi 6 access point that together aim at helping users deploy smart, high-density wireless networks.
+
+Leading the rollout is the Mist Edge appliance that extends Mist’s cloud services to the branch and lets enterprises manage the distributed Wi-Fi infrastructure from a central location.
+
+**More about 802.11ax (Wi-Fi 6)**
+
+ * [Why 802.11ax is the next big thing in wireless][2]
+ * [FAQ: 802.11ax Wi-Fi][3]
+ * [Wi-Fi 6 (802.11ax) is coming to a router near you][4]
+ * [Wi-Fi 6 with OFDMA opens a world of new wireless possibilities][5]
+ * [802.11ax preview: Access points and routers that support Wi-Fi 6 are on tap][6]
+
+
+
+The Mist Edge device features the company’s artificial-intelligence engine that helps automate tasks such as adjusting Wi-Fi signal strength and troubleshooting. According to Mist, some other potential use cases for Mist Edge include:
+
+ * Seamless roaming for large campus networks through on-premises tunnel termination of traffic to/from access points.
+ * Extending virtual LANs (VLANs) to distributed branches and telecommuters to replace remote virtual private network (VPN) technology.
+ * Dynamic traffic segmentation for IoT devices.
+ * The ability to split tunneling to keep guest access and corporate traffic separate.
+
+
+
+The company says a software-only version of Mist Edge will be available in the future.
+
+[Mist’s][7] strength is its AI-based wireless platform which makes Wi-Fi more predictable, reliable and measurable. Mist is also unique in how it has delivered applications via cloud microservices and containers which could be attractive to enterprise users looking to reduce wireless operational costs, experts say.
+
+Mist’s cloud-based system brings patented dynamic packet capture and machine learning technology to automatically identify, adapt and fix network issues, Gartner wrote in a recent Magic Quadrant report. The Mist system is delivered and managed via cloud services.
+
+“Mist's AI-driven Wi-Fi provides guest access, network management, policy applications and a virtual network assistant as well as analytics, IoT segmentation, and behavioral analysis at scale,” Gartner stated. “Mist offers a new and unique approach to high-accuracy location services through a cloud-based machine-learning engine that uses Wi-Fi and Bluetooth Low Energy (BLE)-based signals from its multielement directional-antenna access points. The same platform can be used for Real Time Location System (RTLS) usage scenarios, static or zonal applications, and engagement use cases like wayfinding and proximity notifications.”
+
+Juniper bought Mist in March for $405 million for this AI-based WIFI technology. For Juniper the Mist buy was significant as it had depended on agreements with partners such as Aerohive and Aruba to deliver wireless, according to Gartner.
+
+Mist, too, has partners and recently announced joint product development with VMware that integrates Mist WLAN technology and VMware’s VeloCloud-based NSX SD-WAN.
+
+“Mist has focused on large enterprises and has won some very well known brands,” said Chris Depuy, technology analyst with the 650 Group. “The [Mist/Juniper] combination is a good fit because both product lines are focusing on larger enterprises and over time, we expect Mist AI will be used to benefit the entire Juniper campus portfolio.”
+
+The other part of the company’s rollout is a WiFi 6 (802.11ax) access point, the Mist AP43, a cloud-managed WiFi 6 access point with integrated support for Mist’s AI automation and manageability.
+
+“The new access point gets Juniper to 802.11ax on the same time frame as other major competitors like Cisco,” said Depuy. “Juniper could not address customers who were upgrading wireless and wired at the same time without Mist. With 802.11ax, we expect new switches to be necessary because 1 GB isn’t fast enough to support these new APs. Thus, Juniper can now upgrade customers to 802.11ax and MultiGig switches instead of bringing in another vendor. “
+
+WiFi 6 is designed for high-density public or private environments. But it also will be beneficial in internet of things (IoT) deployments, and in offices that use bandwidth-hogging applications like videoconferencing. Products promising WIFI 6 support have been rolling out across the industry with [HPE][8], [Cisco][9], [Arista][10] and others recently tossing their hats into the ring.
+
+The enterprise WLAN is now dominated by the 802.11ac standard, which makes up 86.4% of dependent access point (AP) shipments and 93.1% of enterprise WLAN dependent AP revenues. The next iteration of the standard, 802.11ax or WiFi 6, will increase in the market throughout the rest of 2019 and into 2020. In the consumer WLAN market, the 802.11ac standard accounted for 58.0% of shipments and 79.2% of revenue in 1Q19, according to IDC’s most recent [Worldwide Quarterly WLAN Tracker][11] report.
+
+"The WLAN market continues to see steady, moderate growth as enterprises invest in wireless connectivity to support the continued demand for access technology," said [Brandon Butler][12], senior research analyst, Network Infrastructure at IDC in the report. "Meanwhile, the coming Wi-Fi 6 standard will be a major driver of growth in the WLAN market in the coming years, especially in the advanced enterprise segments of the market."
+
+The AP43 lists at $1,585.
+
+Mist also announced a strategic relationship with ForeScout to automate management and security control of Wi-Fi client and Internet of Things (IoT) devices. The Juniper and Forescout mashup lets customers monitor and profile devices and mobile clients including smartphones, tablets, laptops, robots and IoT devices (HVAC systems, security devices, displays, sensors, lights) based on their network traffic patterns. Then if anomalous or threatening behavior is observed, customers can launch trouble tickets, remediate software on devices as needed or quarantine devices.
+
+Join the Network World communities on [Facebook][13] and [LinkedIn][14] to comment on topics that are top of mind.
+
+--------------------------------------------------------------------------------
+
+via: https://www.networkworld.com/article/3405123/juniper-s-mist-adds-wifi-6-ai-based-cloud-services-to-enterprise-edge.html
+
+作者:[Michael Cooney][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://www.networkworld.com/author/Michael-Cooney/
+[b]: https://github.com/lujun9972
+[1]: https://images.idgesg.net/images/article/2019/02/wifi_cloud_wireless-100787113-large.jpg
+[2]: https://www.networkworld.com/article/3215907/mobile-wireless/why-80211ax-is-the-next-big-thing-in-wi-fi.html
+[3]: https://%20https//www.networkworld.com/article/3048196/mobile-wireless/faq-802-11ax-wi-fi.html
+[4]: https://www.networkworld.com/article/3311921/mobile-wireless/wi-fi-6-is-coming-to-a-router-near-you.html
+[5]: https://www.networkworld.com/article/3332018/wi-fi/wi-fi-6-with-ofdma-opens-a-world-of-new-wireless-possibilities.html
+[6]: https://www.networkworld.com/article/3309439/mobile-wireless/80211ax-preview-access-points-and-routers-that-support-the-wi-fi-6-protocol-on-tap.html
+[7]: https://www.networkworld.com/article/3089038/why-one-cisco-shop-is-willing-to-give-wifi-startup-mist-a-shot.html
+[8]: https://www.arubanetworks.com/products/networking/802-11ax/
+[9]: https://www.networkworld.com/article/3391919/cisco-goes-all-in-on-wifi-6.html
+[10]: https://www.networkworld.com/article/3400905/new-switches-wi-fi-gear-to-advance-aristas-campus-architecture.html
+[11]: http://www.idc.com/tracker/showproductinfo.jsp?prod_id=262
+[12]: https://www.idc.com/getdoc.jsp?containerId=PRF005027
+[13]: https://www.facebook.com/NetworkWorld/
+[14]: https://www.linkedin.com/company/network-world
diff --git a/sources/talk/20190626 Where are all the IoT experts going to come from.md b/sources/talk/20190626 Where are all the IoT experts going to come from.md
new file mode 100644
index 0000000000..22a303d2f6
--- /dev/null
+++ b/sources/talk/20190626 Where are all the IoT experts going to come from.md
@@ -0,0 +1,78 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Where are all the IoT experts going to come from?)
+[#]: via: (https://www.networkworld.com/article/3404489/where-are-all-the-iot-experts-going-to-come-from.html)
+[#]: author: (Fredric Paul https://www.networkworld.com/author/Fredric-Paul/)
+
+Where are all the IoT experts going to come from?
+======
+The fast growth of the internet of things (IoT) is creating a need to train cross-functional experts who can combine traditional networking and infrastructure expertise with database and reporting skills.
+![Kevin \(CC0\)][1]
+
+If the internet of things (IoT) is going to fulfill its enormous promise, it’s going to need legions of smart, skilled, _trained_ workers to make everything happen. And right now, it’s not entirely clear where those people are going to come from.
+
+That’s why I was interested in trading emails with Keith Flynn, senior director of product management, R&D at asset-optimization software company [AspenTech][2], who says that when dealing with the slew of new technologies that fall under the IoT umbrella, you need people who can understand how to configure the technology and interpret the data. Flynn sees a growing need for existing educational institutions to house IoT-specific programs, as well as an opportunity for new IoT-focused private colleges, offering a well -ounded curriculum
+
+“In the future,” Flynn told me, “IoT projects will differ tremendously from the general data management and automation projects of today. … The future requires a more holistic set of skills and cross-trading capabilities so that we’re all speaking the same language.”
+
+**[ Also read: [20 hot jobs ambitious IT pros should shoot for][3] ]**
+
+With the IoT growing 30% a year, Flynn added, rather than a few specific skills, “everything from traditional deployment skills, like networking and infrastructure, to database and reporting skills and, frankly, even basic data science, need to be understood together and used together.”
+
+### Calling all IoT consultants
+
+“The first big opportunity for IoT-educated people is in the consulting field,” Flynn predicted. “As consulting companies adapt or die to the industry trends … having IoT-trained people on staff will help position them for IoT projects and make a claim in the new line of business: IoT consulting.”
+
+The problem is especially acute for startups and smaller companies. “The bigger the organization, the more likely they have a means to hire different people across different lines of skillsets,” Flynn said. “But for smaller organizations and smaller IoT projects, you need someone who can do both.”
+
+Both? Or _everything?_ The IoT “requires a combination of all knowledge and skillsets,” Flynn said, noting that “many of the skills aren’t new, they’ve just never been grouped together or taught together before.”
+
+**[ [Looking to upgrade your career in tech? This comprehensive online course teaches you how.][4] ]**
+
+### The IoT expert of the future
+
+True IoT expertise starts with foundational instrumentation and electrical skills, Flynn said, which can help workers implement new wireless transmitters and boost technology for better battery life and power consumption.
+
+“IT skills, like networking, IP addressing, subnet masks, cellular and satellite are also pivotal IoT needs,” Flynn said. He also sees a need for database management skills and cloud management and security expertise, “especially as things like [advanced process control] APC and sending sensor data directly to databases and data lakes become the norm.”
+
+### Where will IoT experts come from?
+
+Flynn said standardized formal education courses would be the best way to make sure that graduates or certificate holders have the right set of skills. He even laid out a sample curriculum: “Start in chronological order with the basics like [Electrical & Instrumentation] E&I and measurement. Then teach networking, and then database administration and cloud courses should follow that. This degree could even be looped into an existing engineering course, and it would probably take two years … to complete the IoT component.”
+
+While corporate training could also play role, “that’s easier said than done,” Flynn warned. “Those trainings will need to be organization-specific efforts and pushes.”
+
+Of course, there are already [plenty of online IoT training courses and certificate programs][5]. But, ultimately, the responsibility lies with the workers themselves.
+
+“Upskilling is incredibly important in this world as tech continues to transform industries,” Flynn said. “If that upskilling push doesn’t come from your employer, then online courses and certifications would be an excellent way to do that for yourself. We just need those courses to be created. ... I could even see organizations partnering with higher-education institutions that offer these courses to give their employees better access to it. Of course, the challenge with an IoT program is that it will need to constantly evolve to keep up with new advancements in tech.”
+
+**[ For more on IoT, see [tips for securing IoT on your network][6], our list of [the most powerful internet of things companies][7] and learn about the [industrial internet of things][8]. | Get regularly scheduled insights by [signing up for Network World newsletters][9]. ]**
+
+Join the Network World communities on [Facebook][10] and [LinkedIn][11] to comment on topics that are top of mind.
+
+--------------------------------------------------------------------------------
+
+via: https://www.networkworld.com/article/3404489/where-are-all-the-iot-experts-going-to-come-from.html
+
+作者:[Fredric Paul][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://www.networkworld.com/author/Fredric-Paul/
+[b]: https://github.com/lujun9972
+[1]: https://images.idgesg.net/images/article/2018/07/programmer_certification-skills_code_devops_glasses_student_by-kevin-unsplash-100764315-large.jpg
+[2]: https://www.aspentech.com/
+[3]: https://www.networkworld.com/article/3276025/careers/20-hot-jobs-ambitious-it-pros-should-shoot-for.html
+[4]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fupgrading-your-technology-career
+[5]: https://www.google.com/search?client=firefox-b-1-d&q=iot+training
+[6]: https://www.networkworld.com/article/3254185/internet-of-things/tips-for-securing-iot-on-your-network.html#nww-fsb
+[7]: https://www.networkworld.com/article/2287045/internet-of-things/wireless-153629-10-most-powerful-internet-of-things-companies.html#nww-fsb
+[8]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html#nww-fsb
+[9]: https://www.networkworld.com/newsletters/signup.html#nww-fsb
+[10]: https://www.facebook.com/NetworkWorld/
+[11]: https://www.linkedin.com/company/network-world
diff --git a/sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md b/sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md
new file mode 100644
index 0000000000..5cf40e865d
--- /dev/null
+++ b/sources/talk/20190701 Tempered Networks simplifies secure network connectivity and microsegmentation.md
@@ -0,0 +1,99 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Tempered Networks simplifies secure network connectivity and microsegmentation)
+[#]: via: (https://www.networkworld.com/article/3405853/tempered-networks-simplifies-secure-network-connectivity-and-microsegmentation.html)
+[#]: author: (Linda Musthaler https://www.networkworld.com/author/Linda-Musthaler/)
+
+Tempered Networks simplifies secure network connectivity and microsegmentation
+======
+Tempered Networks’ Identity Defined Network platform uses the Host Identity Protocol to partition and isolate the network into trusted microsegments, providing an easy and cost-effective way to secure the network.
+![Thinkstock][1]
+
+The TCP/IP protocol is the foundation of the internet and pretty much every single network out there. The protocol was designed 45 years ago and was originally only created for connectivity. There’s nothing in the protocol for security, mobility, or trusted authentication.
+
+The fundamental problem with TCP/IP is that the IP address within the protocol represents both the device location and the device identity on a network. This dual functionality of the address lacks the basic mechanisms for security and mobility of devices on a network.
+
+This is one of the reasons networks are so complicated today. To connect to things on a network or over the internet, you need VPNs, firewalls, routers, cell modems, etc. and you have all the configurations that come with ACLs, VLANs, certificates, and so on. The nightmare grows exponentially when you factor in internet of things (IoT) device connectivity and security. It’s all unsustainable at scale.
+
+Clearly, we need a more efficient and effective way to take on network connectivity, mobility, and security.
+
+**[ Also read: [What is microsegmentation? How getting granular improves network security][2] | Get regularly scheduled insights: [Sign up for Network World newsletters][3] ]**
+
+The Internet Engineering Task Force (IETF) tackled this problem with the Host Identity Protocol (HIP). It provides a method of separating the endpoint identifier and the locator roles of IP addresses. It introduces a new Host Identity (HI) name space, based on public keys, from which endpoint identifiers are taken. HIP uses existing IP addressing and forwarding for locators and packet delivery.The protocol is compatible with IPv4 and IPv6 applications and utilizes a customized IPsec tunnel mode for confidentiality, authentication, and integrity of network applications.
+
+Ratified by IETF in 2015, HIP represents a new security networking layer within the OSI stack. Think of it as Layer 3.5. It’s a flip of the trust model where TCP/IP is inherently promiscuous and will answer to anything that wants to talk to a device on that network. In contrast, HIP is a trust protocol that will not answer to anything on the network unless that connection has been authenticated and authorized based on its cryptographic identity. It is, in effect, a form of a [software-defined perimeter][4] around specific network resources. This is also known as [microsegmentation][5].
+
+![][6]
+
+### Tempered Networks’ IDN platform creates segmented, encrypted network
+
+[Tempered Networks][7] has created a platform utilizing the HIP and a variety of technologies that partitions and isolates the network into trusted microsegments. Tempered Networks’ Identity Defined Networking (IDN) platform is deployed as an overlay technology that layers on top of any IP network. The HIP was designed to be both forward and backward compatible with any IP network without having to make any changes to the underlay network. The overlay network creates a direct tunnel between the two things you want to connect.
+
+**[ [Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][8] ]**
+
+The IDN platform uses three components to create a segmented and encrypted network: an orchestration engine called the Conductor, the HIPrelay identity-based router, and HIP Services enforcement points.
+
+The Conductor is a centralized orchestration and intelligence engine that connects, protects, and disconnects any resource globally through a single pane of glass. The Conductor is used to define and enforce policies for HIP Services. Policy configuration is done in a simple point-and-click manner. The Conductor is available as a physical or virtual appliance or in the Amazon Web Services (AWS) cloud.
+
+HIP Services provide software-based policy enforcement, enabling secure connectivity among IDN-protected devices, as well as cloaking, segmentation, identity-based routing, and IP mobility. They can be deployed on or in-line to any device or system and come in the form of HIPswitch hardware, HIPserver, HIPclient, Cloud HIPswitch, or Virtual HIPswitch. HIP Services also can be embedded in customer hardware or applications.
+
+Placing HIPswitches in front of any connected device renders the device HIP-enabled and immediately microsegments the traffic, isolating inbound and outbound traffic from the underlying network. HIPswitches deployed on the network automatically register with the Conductor using their cryptographic identity.
+
+HIPrelay works with the HIP Service-enabled endpoints to deliver peer-to-peer connectivity for any device or system across all networks and transport options. Rather than using Layer 3 or 4 rule sets or traditional routing protocols, HIPrelay routes and connects encrypted communications based on provable cryptographic identities traversing existing infrastructure.
+
+It sounds complicated, but it really isn’t. A use case example should demonstrate the ease and power of this solution.
+
+### Use case: Smart Ships
+
+An international cruise line recently installed Tempered Networks’ IDN solution to provide tighter security around its critical maritime systems. Prior to deployment, the systems for fuel, propulsion, navigation, ballast, weather, and incinerators were on a flat Layer 2 network, which basically allowed authorized users of the network to see everything.
+
+Given that vendors of the different maritime systems had access to their own system, the lack of microsegmentation allowed them to see the other systems as well. The cruise line needed a simple way to segment access to these different systems — isolating them from each other — and they wanted to do it without having to put the ships in dry dock for the network reconfiguration.
+
+The original configuration looked like this:
+
+![][9]
+
+The company implemented microsegmentation of the network based on the functionality of the systems. This isolated and segmented vendor access to only their own systems — everything else was hidden to them. The implementation involved installing HIPrelay identity routing in the cloud, several HIPswitch wireless devices onboard the ships, and HIPclient software on the vendors’ and crew members’ devices. The Conductor appliance that managed the entire deployment was installed in AWS.
+
+All of that was done without impacting the underlying network, and no dry dock time was required for the deployment. In addition, the cruise line was able to eliminate internal firewalls and VPNs that had previously been used for segmentation and remote access. The resulting configuration looks like this:
+
+![][10]
+
+The color coding of the illustration above indicates what systems are now able to directly see and communicate with their corresponding controllers and sensors. Everything else on the network is hidden from view of those systems.
+
+The acquisition cost of the Tempered Networks’ solution was one-tenth that of a traditional microsegmentation solution. The deployment time was 2 FTE days per ship compared to the 40 FTE days a traditional solution would have needed. No additional staffing was required to support the solution, and no changes were made to the underlying network.
+
+### A time-tested microsegmentation solution
+
+This technology came out of Boeing and was deployed for over 12 years within their manufacturing facilities until 2014, when Boeing allowed the technology to become commercialized. Tempered Networks took the HIP and developed the full platform with easy, centralized management. It was purpose-built to provide secure connectivity to networks. The solution has been successfully deployed in industrial domains such as the utilities sector, oil and gas, electricity generation, and aircraft manufacturing, as well as in enterprise domains and healthcare.
+
+Join the Network World communities on [Facebook][11] and [LinkedIn][12] to comment on topics that are top of mind.
+
+--------------------------------------------------------------------------------
+
+via: https://www.networkworld.com/article/3405853/tempered-networks-simplifies-secure-network-connectivity-and-microsegmentation.html
+
+作者:[Linda Musthaler][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://www.networkworld.com/author/Linda-Musthaler/
+[b]: https://github.com/lujun9972
+[1]: https://images.idgesg.net/images/article/2018/01/network_security_hacker_virus_crime-100745979-large.jpg
+[2]: https://www.networkworld.com/article/3236448/lan-wan/what-to-consider-when-deploying-a-next-generation-firewall.html
+[3]: https://www.networkworld.com/newsletters/signup.html
+[4]: https://www.networkworld.com/article/3359363/software-defined-perimeter-brings-trusted-access-to-multi-cloud-applications-network-resources.html
+[5]: https://www.networkworld.com/article/3247672/what-is-microsegmentation-how-getting-granular-improves-network-security.html
+[6]: https://images.idgesg.net/images/article/2019/07/hip-slide-100800735-large.jpg
+[7]: https://www.temperednetworks.com/
+[8]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
+[9]: https://images.idgesg.net/images/article/2019/07/cruise-ship-before-100800736-large.jpg
+[10]: https://images.idgesg.net/images/article/2019/07/cruise-ship-after-100800738-large.jpg
+[11]: https://www.facebook.com/NetworkWorld/
+[12]: https://www.linkedin.com/company/network-world
diff --git a/sources/tech/20171116 Unleash Your Creativity – Linux Programs for Drawing and Image Editing.md b/sources/tech/20171116 Unleash Your Creativity – Linux Programs for Drawing and Image Editing.md
index c6c50d9b25..0b5576e3a6 100644
--- a/sources/tech/20171116 Unleash Your Creativity – Linux Programs for Drawing and Image Editing.md
+++ b/sources/tech/20171116 Unleash Your Creativity – Linux Programs for Drawing and Image Editing.md
@@ -1,3 +1,4 @@
+IEAST is translating
### Unleash Your Creativity – Linux Programs for Drawing and Image Editing
By: [chabowski][1]
@@ -74,11 +75,11 @@ And indeed, the sky’s the limit on how creative a user wants to be when using
(
- _**2** votes, average: **5.00** out of 5_
+ _**2** votes, average: **5.00** out of 5_
)
- _You need to be a registered member to rate this post._
+ _You need to be a registered member to rate this post._
Tags: [drawing][19], [Getting Started with Linux][20], [GIMP][21], [image editing][22], [Images][23], [InkScape][24], [KDE][25], [Krita][26], [Leap 42.3][27], [LibreOffice][28], [Linux Magazine][29], [Okular][30], [openSUSE][31], [PDF][32] Categories: [Desktop][33], [Expert Views][34], [LibreOffice][35], [openSUSE][36]
diff --git a/sources/tech/20180529 Manage your workstation with Ansible- Configure desktop settings.md b/sources/tech/20180529 Manage your workstation with Ansible- Configure desktop settings.md
deleted file mode 100644
index ed85b172af..0000000000
--- a/sources/tech/20180529 Manage your workstation with Ansible- Configure desktop settings.md
+++ /dev/null
@@ -1,198 +0,0 @@
-Translating by MjSeven
-
-Manage your workstation with Ansible: Configure desktop settings
-======
-
-
-
-In the [first article][1] of this series on using Ansible to configure a workstation, we set up a repository and configured a few basic things. In the [second part][2], we automated Ansible to apply settings automatically when changes are made to our repository. In this third (and final) article, we'll use Ansible to configure GNOME desktop settings.
-
-This configuration will work only on newer distributions (such as Ubuntu 18.04, which I'll use in my examples). Older versions of Ubuntu will not work, as they ship with a version of `python-psutils` that is too old for Ansible's `dconf` module to work properly. If you're using a newer version of your Linux distribution, you should have no issues.
-
-Before you begin, make sure you've worked through parts one and two of this series, as part three builds upon that groundwork. If you haven't already, download the GitHub repository you've been using in those first two articles. We'll add a few more features to it.
-
-### Set a wallpaper and lock screen
-
-First, we'll create a taskbook to hold our GNOME settings. In the root of the repository, you should have a file named `local.yml`. Add the following line to it:
-```
-- include: tasks/gnome.yml
-
-```
-
-The entire file should now look like this:
-```
-- hosts: localhost
-
- become: true
-
- pre_tasks:
-
- - name: update repositories
-
- apt: update_cache=yes
-
- changed_when: False
-
-
-
- tasks:
-
- - include: tasks/users.yml
-
- - include: tasks/cron.yml
-
- - include: tasks/packages.yml
-
- - include: tasks/gnome.yml
-
-```
-
-Basically, this added a reference to a file named `gnome.yml` that will be stored in the `tasks` directory inside the repository. We haven't created this file yet, so let's do that now. Create `gnome.yml` file in the `tasks` directory, and place the following content inside:
-```
-- name: Install python-psutil package
-
- apt: name=python-psutil
-
-
-
-- name: Copy wallpaper file
-
- copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600
-
-
-
-- name: Set GNOME Wallpaper
-
- become_user: jay
-
- dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"
-
-```
-
-Note that this code refers to my username (`jay`) several times, so make sure to replace every occurrence of `jay` with the username you use on your machine. Also, if you're not using Ubuntu 18.04 (as I am), you'll have to change the `apt` line to match the package manager for your chosen distribution and to confirm the name of the `python-psutil` package for your distribution, as it may be different.
-
-`wallpaper.jpg` inside the `files` directory. This file must exist or the Ansible configuration will fail. Inside the `tasks` directory, create a subdirectory named `files`. Find a wallpaper image you like, name it `wallpaper.jpg`, and place it inside the `files` directory. If the file is a PNG image instead of a JPG, change the file extension in both the code and in the repository. If you're not feeling creative, I have an example wallpaper file in the
-
-In the example tasks, I referred to a file namedinside thedirectory. This file must exist or the Ansible configuration will fail. Inside thedirectory, create a subdirectory named. Find a wallpaper image you like, name it, and place it inside thedirectory. If the file is a PNG image instead of a JPG, change the file extension in both the code and in the repository. If you're not feeling creative, I have an example wallpaper file in the [GitHub repository][3] for this article series that you can use.
-
-Once you've made all these changes, commit everything to your GitHub repository, and push those changes. To recap, you should've completed the following:
-
- * Modified the `local.yml` file to refer to the `tasks/gnome.yml` playbook
- * Created the `tasks/gnome.yml` playbook with the content mentioned above
- * Created a `files` directory inside the `tasks` directory, with an image file named `wallpaper.jpg` (or whatever you chose to call it).
-
-
-
-Once you've completed those steps and pushed your changes back to the repository, the configuration should be automatically applied during its next scheduled run. (You may recall that we automated this in the previous article.) If you're in a hurry, you can apply the configuration immediately with the following command:
-```
-sudo ansible-pull -U https://github.com//ansible.git
-
-```
-
-If everything ran correctly, you should see your new wallpaper.
-
-Let's take a moment to go through what the new GNOME taskbook does. First, we added a play to install the `python-psutil` package. If we don't add this, we can't use the `dconf` module, since it requires this package to be installed before we can modify GNOME settings. Next, we used the `copy` module to copy the wallpaper file to our `home` directory, and we named the resulting file starting with a period to hide it. If you'd prefer not to have this file in the root of your `home` directory, you can always instruct this section to copy it somewhere else—it will still work as long as you refer to it at the correct place. In the next play, we used the `dconf` module to change GNOME settings. In this case, we adjusted the `/org/gnome/desktop/background/picture-uri` key and set it equal to `file:///home/jay/.wallpaper.jpg`. Note the quotes in this section of the playbook—you must always use two single-quotes in `dconf` values, and you must also include double-quotes if the value is a string.
-
-Now, let's take our configuration a step further and apply a background to the lock screen. Here's the GNOME taskbook again, but with two additional plays added:
-```
-- name: Install python-psutil package
-
- apt: name=python-psutil
-
-
-
-- name: Copy wallpaper file
-
- copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600
-
-
-
-- name: Set GNOME wallpaper
-
- dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"
-
-
-
-- name: Copy lockscreenfile
-
- copy: src=files/lockscreen.jpg dest=/home/jay/.lockscreen.jpg owner=jay group=jay mode=600
-
-
-
-- name: Set lock screen background
-
- become_user: jay
-
- dconf: key="/org/gnome/desktop/screensaver/picture-uri" value="'file:///home/jay/.lockscreen.jpg'"
-
-```
-
-As you can see, we're pretty much doing the same thing as we did with the wallpaper. We added two additional tasks, one to copy the lock screen image and place it in our `home` directory, and another to apply the setting to GNOME so it will be used. Again, be sure to change your username from `jay` and also name your desired lock screen picture `lockscreen.jpg` and copy it to the `files` directory. Once you've committed these changes to your repository, the new lock screen should be applied during the next scheduled Ansible run.
-
-### Apply a new desktop theme
-
-Setting the wallpaper and lock screen background is cool and all, but let's go even further and apply a desktop theme. First, let's add an instruction to our taskbook to install the package for the `arc` theme. Add the following code to the beginning of the GNOME taskbook:
-```
-- name: Install arc theme
-
- apt: name=arc-theme
-
-```
-
-Then, at the bottom, add the following play:
-```
-- name: Set GTK theme
-
- become_user: jay
-
- dconf: key="/org/gnome/desktop/interface/gtk-theme" value="'Arc'"
-
-```
-
-Did you see GNOME's GTK theme change right before your eyes? We added a play to install the `arc-theme` package via the `apt` module and another play to apply this theme to GNOME.
-
-### Make other customizations
-
-Now that you've changed some GNOME settings, feel free to add additional customizations on your own. Any setting you can tweak in GNOME can be automated this way; setting the wallpapers and the theme were just a few examples. You may be wondering how to find the settings that you want to change. Here's a trick that works for me.
-
-First, take a snapshot of ALL your current `dconf` settings by running the following command on the machine you're managing:
-```
-dconf dump / > before.txt
-
-```
-
-This command exports all your current changes to a file named `before.txt`. Next, manually change the setting you want to automate, and capture the `dconf` settings again:
-```
-dconf dump / > after.txt
-
-```
-
-Now, you can use the `diff` command to see what's different between the two files:
-```
-diff before.txt after.txt
-
-```
-
-This should give you a list of keys that changed. While it's true that changing settings manually defeats the purpose of automation, what you're essentially doing is capturing the keys that change when you update your preferred settings, which then allows you to create Ansible plays to modify those settings so you'll never need to touch those settings again. If you ever need to restore your machine, your Ansible repository will take care of each and every one of your customizations. If you have multiple machines, or even a fleet of workstations, you only have to manually make the change once, and all other workstations will have the new settings applied and be completely in sync.
-
-### Wrapping up
-
-If you've followed along with this series, you should know how to set up Ansible to automate your workstation. These examples offer a useful baseline, and you can use the syntax and examples to make additional customizations. As you go along, you can continue to add new modifications, which will make your Ansible configuration grow over time.
-
-I've used Ansible in this way to automate everything, including my user account and password; configuration files for Vim, tmux, etc.; desktop packages; SSH settings; SSH keys; and basically everything I could ever want to customize. Using this series as a starting point will pave the way for you to completely automate your workstations.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/18/5/manage-your-workstation-ansible-part-3
-
-作者:[Jay LaCroix][a]
-选题:[lujun9972](https://github.com/lujun9972)
-译者:[译者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/jlacroix
-[1]:https://opensource.com/article/18/3/manage-workstation-ansible
-[2]:https://opensource.com/article/18/3/manage-your-workstation-configuration-ansible-part-2
-[3]:https://github.com/jlacroix82/ansible_article.git
diff --git a/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md
new file mode 100644
index 0000000000..7004a4350a
--- /dev/null
+++ b/sources/tech/20180620 How To Find The Port Number Of A Service In Linux.md
@@ -0,0 +1,210 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (How To Find The Port Number Of A Service In Linux)
+[#]: via: (https://www.ostechnix.com/how-to-find-the-port-number-of-a-service-in-linux/)
+[#]: author: (sk https://www.ostechnix.com/author/sk/)
+
+How To Find The Port Number Of A Service In Linux
+======
+
+![Find The Port Number Of A Service In Linux OS][1]
+
+You might often need to find the port names and numbers for some reasons. If so, you’re in luck. Today, in this brief tutorial, we are going to see the easiest and quickest ways to find the port number of a service in Linux operating system. There could be many methods to do it, but I am aware of the following three methods only at present. Read on.
+
+### Find The Port Number Of A Service In Linux
+
+**Method 1 – Using[Grep][2] command:**
+
+To find the default port number of a given service in Linux using grep command, just run:
+
+```
+$ grep /etc/services
+```
+
+For example, to find the default port of a SSH service, simply run:
+
+```
+$ grep ssh /etc/services
+```
+
+It’s that simple. This command should work on most Linux distributions. Here is the sample output from my Arch Linux test box:
+
+```
+ssh 22/tcp
+ssh 22/udp
+ssh 22/sctp
+sshell 614/tcp
+sshell 614/udp
+netconf-ssh 830/tcp
+netconf-ssh 830/udp
+sdo-ssh 3897/tcp
+sdo-ssh 3897/udp
+netconf-ch-ssh 4334/tcp
+snmpssh 5161/tcp
+snmpssh-trap 5162/tcp
+tl1-ssh 6252/tcp
+tl1-ssh 6252/udp
+ssh-mgmt 17235/tcp
+ssh-mgmt 17235/udp
+```
+
+As you can see in the above output, the default port number of SSH service is 22.
+
+Let us find the port number of Apache web server. To do so, the command would be:
+
+```
+$ grep http /etc/services
+# http://www.iana.org/assignments/port-numbers
+http 80/tcp www www-http # WorldWideWeb HTTP
+http 80/udp www www-http # HyperText Transfer Protocol
+http 80/sctp # HyperText Transfer Protocol
+https 443/tcp # http protocol over TLS/SSL
+https 443/udp # http protocol over TLS/SSL
+https 443/sctp # http protocol over TLS/SSL
+gss-http 488/tcp
+gss-http 488/udp
+webcache 8080/tcp http-alt # WWW caching service
+webcache 8080/udp http-alt # WWW caching service
+[...]
+```
+
+How about FTP port number? That’s easy!
+
+```
+$ grep ftp /etc/services
+ftp-data 20/tcp
+ftp-data 20/udp
+# 21 is registered to ftp, but also used by fsp
+ftp 21/tcp
+ftp 21/udp fsp fspd
+tftp 69/tcp
+[...]
+```
+
+**Method 2 – Using getent command**
+
+As you can see, the above commands shows all port names and numbers for the given search term “ssh”, “http” and “ftp”. That means, you will get a quite long output of all port names that matches with the given search term.
+
+You can, however, narrow down the result to exact output using “getent” command like below:
+
+```
+$ getent services ssh
+ssh 22/tcp
+
+$ getent services http
+http 80/tcp www www-http
+
+$ getent services ftp
+ftp 21/tcp
+```
+
+If you don’t know the port name but the port number, simply replace the port name with number like below:
+
+```
+$ getent services 80
+http 80/tcp
+```
+
+To display all port names and numbers, simply run:
+
+```
+$ getent services
+```
+
+* * *
+
+**Suggested read:**
+
+ * [**How To Change Apache Default Port To A Custom Port**][3]
+ * [**How To Change FTP Default Port To A Custom Port**][4]
+ * [**How To Change SSH Default Port To A Custom Port**][5]
+
+
+
+* * *
+
+**Method 3 – Using Whatportis Utility**
+
+The **Whatportis** is a simple python script used to find port names and numbers. Unlike the above commands, this utility displays the output in a nice tabular column format.
+
+Make sure you have installed PIP package manager. If not, refer the following link.
+
+ * [**How To Manage Python Packages Using Pip**][6]
+
+
+
+Once installed PIP, run the following command to install Whatportis utility.
+
+```
+$ pip install whatportis
+```
+
+Now, you can find what port is associated with a service as shown below.
+
+```
+$ whatportis ssh
+
+$ whatportis ftp
+
+$ whatportis http
+```
+
+Sample output from my CentOS 7 server:
+
+![][7]
+
+Find The Port Number Of A Service In Linux
+
+If you don’t know the exact name of a service, use **–like** flag to display the relevant results.
+
+```
+$ whatportis mysql --like
+```
+
+The above commands helped you to find what port is associated with a service. You can also find what service is associated with a port number like below.
+
+```
+$ whatportis 993
+```
+
+You can even display the results in **JSON** format.
+
+```
+$ whatportis 993 --json
+```
+
+![][8]
+
+For more details, refer the GitHub repository.
+
+ * [**Whatportis GitHub Repository**][9]
+
+
+
+And, that’s all for now. You know now how to find the port names and numbers in Linux using three simple methods. If you know any other methods/commands, let me know in the comment section below. I will check and update this guide accordingly.
+
+--------------------------------------------------------------------------------
+
+via: https://www.ostechnix.com/how-to-find-the-port-number-of-a-service-in-linux/
+
+作者:[sk][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://www.ostechnix.com/author/sk/
+[b]: https://github.com/lujun9972
+[1]: https://www.ostechnix.com/wp-content/uploads/2018/06/Find-The-Port-Number-720x340.png
+[2]: https://www.ostechnix.com/the-grep-command-tutorial-with-examples-for-beginners/
+[3]: https://www.ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-1/
+[4]: https://www.ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-2/
+[5]: https://www.ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/
+[6]: https://www.ostechnix.com/manage-python-packages-using-pip/
+[7]: https://www.ostechnix.com/wp-content/uploads/2018/06/whatportis.png
+[8]: https://www.ostechnix.com/wp-content/uploads/2018/06/whatportis-1.png
+[9]: https://github.com/ncrocfer/whatportis
diff --git a/sources/tech/20190320 4 cool terminal multiplexers.md b/sources/tech/20190320 4 cool terminal multiplexers.md
deleted file mode 100644
index e8650b4f56..0000000000
--- a/sources/tech/20190320 4 cool terminal multiplexers.md
+++ /dev/null
@@ -1,121 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (4 cool terminal multiplexers)
-[#]: via: (https://fedoramagazine.org/4-cool-terminal-multiplexers/)
-[#]: author: (Paul W. Frields https://fedoramagazine.org/author/pfrields/)
-
-4 cool terminal multiplexers
-======
-
-![][1]
-
-The Fedora OS is comfortable and easy for lots of users. It has a stunning desktop that makes it easy to get everyday tasks done. Under the hood is all the power of a Linux system, and the terminal is the easiest way for power users to harness it. By default terminals are simple and somewhat limited. However, a _terminal multiplexer_ allows you to turn your terminal into an even more incredible powerhouse. This article shows off some popular terminal multiplexers and how to install them.
-
-Why would you want to use one? Well, for one thing, it lets you logout of your system while _leaving your terminal session undisturbed_. It’s incredibly useful to logout of your console, secure it, travel somewhere else, then remotely login with SSH and continue where you left off. Here are some utilities to check out.
-
-One of the oldest and most well-known terminal multiplexers is _screen._ However, because the code is no longer maintained, this article focuses on more recent apps. (“Recent” is relative — some of these have been around for years!)
-
-### Tmux
-
-The _tmux_ utility is one of the most widely used replacements for _screen._ It has a highly configurable interface. You can program tmux to start up specific kinds of sessions based on your needs. You’ll find a lot more about tmux in this article published earlier:
-
-> [Use tmux for a more powerful terminal][2]
-
-Already a tmux user? You might like [this additional article on making your tmux sessions more effective][3].
-
-To install tmux, use the _sudo_ command along with _dnf_ , since you’re probably in a terminal already:
-
-```
-$ sudo dnf install tmux
-```
-
-To start learning, run the _tmux_ command. A single pane window starts with your default shell. Tmux uses a _modifier key_ to signal that a command is coming next. This key is **Ctrl+B** by default. If you enter **Ctrl+B, C** you’ll create a new window with a shell in it.
-
-Here’s a hint: Use **Ctrl+B, ?** to enter a help mode that lists all the keys you can use. To keep things simple, look for the lines starting with _bind-key -T prefix_ at first. These are keys you can use right after the modifier key to configure your tmux session. You can hit **Ctrl+C** to exit the help mode back to tmux.
-
-To completely exit tmux, use the standard _exit_ command or _Ctrl+D_ keystroke to exit all the shells.
-
-### Dvtm
-
-You might have recently seen the Magazine article on [dwm, a dynamic window manager][4]. Like dwm, _dvtm_ is for tiling window management — but in a terminal. It’s designed to adhere to the legacy UNIX philosophy of “do one thing well” — in this case managing windows in a terminal.
-
-Installing dvtm is easy as well. However, if you want the logout functionality mentioned earlier, you’ll also need the _abduco_ package which handles session management for dvtm.
-
-```
-$ sudo dnf install dvtm abduco
-```
-
-The dvtm utility has many keystrokes already mapped to allow you to manage windows in the terminal. By default, it uses **Ctrl+G** as its modifier key. This keystroke tells dvtm that the following character is going to be a command it should process. For instance, **Ctrl+G, C** creates a new window and **Ctrl+G, X** removes it.
-
-For more information on using dvtm, check out the dvtm [home page][5] which includes numerous tips and get-started information.
-
-### Byobu
-
-While _byobu_ isn’t truly a multiplexer on its own — it wraps _tmux_ or even the older _screen_ to add functions — it’s worth covering here too. Byobu makes terminal multiplexers better for novices, by adding a help menu and window tabs that are slightly easier to navigate.
-
-Of course it’s available in the Fedora repos as well. To install, use this command:
-
-```
-$ sudo dnf install byobu
-```
-
-By default the _byobu_ command runs _screen_ underneath, so you might want to run _byobu-tmux_ to wrap _tmux_ instead. You can then use the **F9** key to open up a help menu for more information to help you get started.
-
-### Mtm
-
-The _mtm_ utility is one of the smallest multiplexers you’ll find. In fact, it’s only about 1000 lines of code! You might find it helpful if you’re in a limited environment such as old hardware, a minimal container, and so forth. To get started, you’ll need a couple packages.
-
-```
-$ sudo dnf install git ncurses-devel make gcc
-```
-
-Then clone the repository where mtm lives:
-
-```
-$ git clone https://github.com/deadpixi/mtm.git
-```
-
-Change directory into the _mtm_ folder and build the program:
-
-```
-$ make
-```
-
-You might receive a few warnings, but when you’re done, you’ll have the very small _mtm_ utility. Run it with this command:
-
-```
-$ ./mtm
-```
-
-You can find all the documentation for the utility [on its GitHub page][6].
-
-These are just some of the terminal multiplexers out there. Got one you’d like to recommend? Leave a comment below with your tips and enjoy building windows in your terminal!
-
-* * *
-
-_Photo by _[ _Michael_][7]_ on [Unsplash][8]._
-
---------------------------------------------------------------------------------
-
-via: https://fedoramagazine.org/4-cool-terminal-multiplexers/
-
-作者:[Paul W. Frields][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/pfrields/
-[b]: https://github.com/lujun9972
-[1]: https://fedoramagazine.org/wp-content/uploads/2018/08/tmuxers-4-816x345.jpg
-[2]: https://fedoramagazine.org/use-tmux-more-powerful-terminal/
-[3]: https://fedoramagazine.org/4-tips-better-tmux-sessions/
-[4]: https://fedoramagazine.org/lets-try-dwm-dynamic-window-manger/
-[5]: http://www.brain-dump.org/projects/dvtm/#why
-[6]: https://github.com/deadpixi/mtm
-[7]: https://unsplash.com/photos/48yI_ZyzuLo?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[8]: https://unsplash.com/search/photos/windows?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
diff --git a/sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md b/sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md
deleted file mode 100644
index a954e8514e..0000000000
--- a/sources/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md
+++ /dev/null
@@ -1,106 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7])
-[#]: via: (https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/)
-[#]: author: (editor https://www.ostechnix.com/author/editor/)
-
-Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7]
-======
-
-![Public vs Private blockchain][1]
-
-The previous part of the [**Blockchain 2.0**][2] series explored the [**the state of Smart contracts**][3] now. This post intends to throw some light on the different types of blockchains that can be created. Each of these are used for vastly different applications and depending on the use cases, the protocol followed by each of these differ. Now let us go ahead and learn about **Public vs Private blockchain comparison** with Open source and proprietary technology.
-
-The fundamental three-layer structure of a blockchain based distributed ledger as we know is as follows:
-
-![][4]
-
-Figure 1 – Fundamental structure of Blockchain-based ledgers
-
-The differences between the types mentioned here is attributable primarily to the protocol that rests on the underlying blockchain. The protocol dictates rules for the participants and the behavior of the blockchain in response to the said participation.
-
-Remember to keep the following things in mind while reading through this article:
-
- * Platforms such as these are always created to solve a use-case requirement. There is no one direction that the technology should take that is best. Blockchains for instance have tremendous applications and some of these might require dropping features that seem significant in other settings. **Decentralized storage** is a major example in this regard.
- * Blockchains are basically database systems keeping track of information by timestamping and organizing data in the form of blocks. Creators of such blockchains can choose who has the right to make these blocks and perform alterations.
- * Blockchains can be “centralized” as well, and participation in varying extents can be limited to those who this “central authority” deems eligible.
-
-
-
-Most blockchains are either **public** or **private**. Broadly speaking, public blockchains can be considered as being the equivalent of open source software and most private blockchains can be seen as proprietary platforms deriving from the public ones. The figure below should make the basic difference obvious to most of you.
-
-![][5]
-
-Figure 2 – Public vs Private blockchain comparison with Open source and Proprietary Technology
-
-This is not to say that all private blockchains are derived from open public ones. The most popular ones however usually are though.
-
-### Public Blockchains
-
-A public blockchain can be considered as a **permission-less platform** or **network**. Anyone with the knowhow and computing resources can participate in it. This will have the following implications:
-
- * Anyone can join and participate in a public blockchain network. All the “participant” needs is a stable internet connection along with computing resources.
- * Participation will include reading, writing, verifying, and providing consensus during transactions. An example for participating individuals would be **Bitcoin miners**. In exchange for participating in the network the miners are paid back in Bitcoins in this case.
- * The platform is decentralized completely and fully redundant.
- * Because of the decentralized nature, no one entity has complete control over the data recorded in the ledger. To validate a block all (or most) participants need to vet the data.
- * This means that once information is verified and recorded, it cannot be altered easily. Even if it is, its impossible to not leave marks.
- * The identity of participants remains anonymous by design in platforms such as **BITCOIN** and **LITECOIN**. These platforms by design aim for protecting and securing user identities. This is primarily a feature provided by the overlying protocol stack.
- * Examples for public blockchain networks are **BITCOIN** , **LITECOIN** , **ETHEREUM** etc.
- * Extensive decentralizations mean that gaining consensus on transactions might take a while compared to what is typically possible over blockchain ledger networks and throughput can be a challenge for large enterprises aiming for pushing a very high number of transactions every instant.
- * The open participation and often the high number of such participants in open chains such as bitcoin add up to considerable initial investments in computing equipment and energy costs.
-
-
-
-### Private Blockchain
-
-In contrast, a private blockchain is a **permissioned blockchain**. Meaning:
-
- * Permission to participate in the network is restricted and is presided over by the owner or institution overseeing the network. Meaning even though an individual will be able to store data and transact (send and receive payments for example), the validation and storage of these transactions will be done only by select participants.
- * Participation even once permission is given by the central authority will be limited by terms. For instance, in case of a private blockchain network run by a financial institution, not every customer will have access to the entire blockchain ledger, and even among those with the permission, not everyone will be able to access everything. Permissions to access select services will be given by the central figure in this case. This is often referred to as **“channeling”**.
- * Such systems have significantly larger throughput capabilities and also showcase much faster transaction speeds compared to their public counterparts because a block of information only needs to be validated by a select few.
- * Security by design is something the public blockchains are renowned for. They achieve this
-by:
- * Anonymizing participants,
- * Distributed & redundant but encrypted storage on multiple nodes,
- * Mass consensus required for creating and altering data.
-
-
-
-Private blockchains usually don’t feature any of these in their protocol. This makes the system only as secure as most cloud-based database systems currently in use.
-
-### A note for the wise
-
-An important point to note is this, the fact that they’re named public or private (or open or closed) has nothing to do with the underlying code base. The code or the literal foundations on which the platforms are based on may or may not be publicly available and or developed in either of these cases. **R3** is a **DLT** ( **D** istributed **L** edger **T** echnology) company that leads a public consortium of over 200 multinational institutions. Their aim is to further development of blockchain and related distributed ledger technology in the domain of finance and commerce. **Corda** is the product of this joint effort. R3 defines corda as a blockchain platform that is built specially for businesses. The codebase for the same is open source and developers all over the world are encouraged to contribute to the project. However, given its business facing nature and the needs it is meant to address, corda would be categorized as a permissioned closed blockchain platform. Meaning businesses can choose the participants of the network once it is deployed and choose the kind of information these participants can access through the use of natively available smart contract tools.
-
-While it is a reality that public platforms like Bitcoin and Ethereum are responsible for the widespread awareness and development going on in the space, it can still be argued that private blockchains designed for specific use cases in enterprise or business settings is what will lead monetary investments in the short run. These are the platforms most of us will see implemented the near future in practical ways.
-
-Read the next guide about Hyperledger project in this series.
-
- * [**Blockchain 2.0 – An Introduction To Hyperledger Project (HLP)**][6]
-
-
-
-We are working on many interesting topics on Blockchain technology. Stay tuned!
-
---------------------------------------------------------------------------------
-
-via: https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/
-
-作者:[editor][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://www.ostechnix.com/author/editor/
-[b]: https://github.com/lujun9972
-[1]: https://www.ostechnix.com/wp-content/uploads/2019/04/Public-Vs-Private-Blockchain-720x340.png
-[2]: https://www.ostechnix.com/blockchain-2-0-an-introduction/
-[3]: https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/
-[4]: http://www.ostechnix.com/wp-content/uploads/2019/04/blockchain-architecture.png
-[5]: http://www.ostechnix.com/wp-content/uploads/2019/04/Public-vs-Private-blockchain-comparison.png
-[6]: https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/
diff --git a/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md b/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md
index d25298583c..4420b034e6 100644
--- a/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md
+++ b/sources/tech/20190521 How to Disable IPv6 on Ubuntu Linux.md
@@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
-[#]: translator: (arrowfeng)
+[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
diff --git a/sources/tech/20190605 How to navigate the Kubernetes learning curve.md b/sources/tech/20190605 How to navigate the Kubernetes learning curve.md
deleted file mode 100644
index 0fde8d1383..0000000000
--- a/sources/tech/20190605 How to navigate the Kubernetes learning curve.md
+++ /dev/null
@@ -1,75 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (How to navigate the Kubernetes learning curve)
-[#]: via: (https://opensource.com/article/19/6/kubernetes-learning-curve)
-[#]: author: (Scott McCarty https://opensource.com/users/fatherlinux/users/fatherlinux)
-
-How to navigate the Kubernetes learning curve
-======
-Kubernetes is like a dump truck. It's elegant for solving the problems
-it's designed for, but you have to master the learning curve first.
-![Dump truck rounding a turn in the road][1]
-
-In _[Kubernetes is a dump truck][2]_, I talked about how a tool can be elegant for the problem it was designed to solve—once you learn how to use it. In part 2 of this series, I'm going a little deeper into the Kubernetes' learning curve.
-
-The journey to [Kubernetes][3] often starts with running one container on one host. You quickly discover how easy it is to run new versions of software, how easy it is to share that software with others, and how easy it is for those users to run it the way you intended.
-
-But then you need
-
- * Two containers
- * Two hosts
-
-
-
-It's easy to fire up one web server on port 80 with a container, but what happens when you need to fire up a second container on port 80? What happens when you are building a production environment and you need the containerized web server to fail over to a second host? The short answer, in either case, is you have to move into container orchestration.
-
-Inevitably, when you start to handle the two containers or two hosts problem, you'll introduce complexity and, hence, a learning curve. The two services (a more generalized version of a container) / two hosts problem has been around for a long time and has always introduced complexity.
-
-Historically, this would have involved load balancers, clustering software, and even clustered file systems. Configuration logic for every service is embedded in every system (load balancers, cluster software, and file systems). Running 60 or 70 services, clustered, behind load balancers is complex. Adding another new service is also complex. Worse, decommissioning a service is a nightmare. Thinking back on my days of troubleshooting production MySQL and Apache servers with logic embedded in three, four, or five different places, all in different formats, still makes my head hurt.
-
-Kubernetes elegantly solves all these problems with one piece of software:
-
- 1. Two services (containers): Check
- 2. Two servers (high availability): Check
- 3. Single source of configuration: Check
- 4. Standard configuration format: Check
- 5. Networking: Check
- 6. Storage: Check
- 7. Dependencies (what services talk to what databases): Check
- 8. Easy provisioning: Check
- 9. Easy de-provisioning: Check (perhaps Kubernetes' _most_ powerful piece)
-
-
-
-Wait, it's starting to look like Kubernetes is pretty elegant and pretty powerful. _It is._ You can model an entire miniature IT universe in Kubernetes.
-
-![Kubernetes business model][4]
-
-So yes, there is a learning curve when starting to use a giant dump truck (or any professional equipment). There's also a learning curve to use Kubernetes, but it's worth it because you can solve so many problems with one tool. If you are apprehensive about the learning curve, think through all the underlying networking, storage, and security problems in IT infrastructure and envision their solutions today—they're not easier. Especially when you introduce more and more services, faster and faster. Velocity is the goal nowadays, so give special consideration to the provisioning and de-provisioning problem.
-
-But don't confuse the learning curve for building or equipping Kubernetes (picking the right mud flaps for your dump truck can be hard, LOL) with the learning curve for using it. Learning to build your own Kubernetes with so many different choices at so many different layers (container engine, logging, monitoring, service mesh, storage, networking), and then maintaining updated selections of each component every six months, might not be worth the investment—but learning to use it is absolutely worth it.
-
-I eat, sleep, and breathe Kubernetes and containers every day, and even I struggle to keep track of all the major new projects announced literally almost every day. But there isn't a day that I'm not excited about the operational benefits of having a single tool to model an entire IT miniverse. Also, remember Kubernetes has matured a ton and will continue to do so. Like Linux and OpenStack before it, the interfaces and de facto projects at each layer will mature and become easier to select.
-
-In the third article in this series, I'll dig into what you need to know before you drive your Kubernetes "truck."
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/19/6/kubernetes-learning-curve
-
-作者:[Scott McCarty][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/fatherlinux/users/fatherlinux
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/dumptruck_car_vehicle_storage_container_road.jpg?itok=TWK0CbX_ (Dump truck rounding a turn in the road)
-[2]: https://opensource.com/article/19/6/kubernetes-dump-truck
-[3]: https://kubernetes.io/
-[4]: https://opensource.com/sites/default/files/uploads/developer_native_experience_-_mapped_to_traditional_1.png (Kubernetes business model)
diff --git a/sources/tech/20190613 IPython is still the heart of Jupyter Notebooks for Python developers.md b/sources/tech/20190613 IPython is still the heart of Jupyter Notebooks for Python developers.md
deleted file mode 100644
index e7f8c70156..0000000000
--- a/sources/tech/20190613 IPython is still the heart of Jupyter Notebooks for Python developers.md
+++ /dev/null
@@ -1,94 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (chen-ni)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (IPython is still the heart of Jupyter Notebooks for Python developers)
-[#]: via: (https://opensource.com/article/19/6/ipython-still-heart-jupyterlab)
-[#]: author: (Matthew Broberg https://opensource.com/users/mbbroberg/users/marcobravo)
-
-IPython is still the heart of Jupyter Notebooks for Python developers
-======
-Project Jupyter's origin in IPython remains significant for the magical
-development experience it provides.
-![I love Free Software FSFE celebration][1]
-
-I recently wrote about how I find Jupyter projects, especially JupyterLab, to be a [magical Python development experience][2]. In researching how the various projects are related to each other, I recapped how Jupyter began as a fork from IPython. As Project Jupyter's [The Big Split™ announcement][3] explained:
-
-> "If anyone has been confused by what Jupyter is[1], it's the exact same code that lived in IPython, developed by the same people, just in a new home under a new name."
-
-That [1] links to a footnote that further clarifies:
-
-> "I saw 'Jupyter is like IPython, but language agnostic' immediately after the announcement, which is a great illustration of why the project needs to not have Python in the name anymore, since it was already language agnostic at the time."
-
-The fact that Jupyter Notebook and IPython forked from the same source code made sense to me, but I got lost in the current state of the IPython project. Was it no longer needed after The Big Split™ or is it living on in a different way?
-
-I was surprised to learn that IPython's significance continues to add value to Pythonistas, and that it is an essential part of the Jupyter experience. Here's a portion of the Jupyter FAQ:
-
-> **Are any languages pre-installed?**
->
-> Yes, installing the Jupyter Notebook will also install the IPython kernel. This allows working on notebooks using the Python programming language.
-
-I now understand that writing Python in JupyterLab (and Jupyter Notebook) relies on the continued development of IPython as its kernel. Not only that, IPython is the powerhouse default kernel, and it can act as a communication bus for other language kernels according to [the documentation][4], saving a lot of time and development effort.
-
-The question remains, what can I do with just IPython?
-
-### What IPython does today
-
-IPython provides both a powerful, interactive Python shell and a Jupyter kernel. After installing it, I can run **ipython** from any command line on its own and use it as a (much prettier than the default) Python shell:
-
-
-```
-$ ipython
-Python 3.7.3 (default, Mar 27 2019, 09:23:15)
-Type 'copyright', 'credits' or 'license' for more information
-IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.
-
-In [1]: import numpy as np
-In [2]: example = np.array([5, 20, 3, 4, 0, 2, 12])
-In [3]: average = np.average(example)
-In [4]: print(average)
-6.571428571428571
-```
-
-That brings us to the more significant issue: IPython's functionality gives JupyterLab the ability to execute the code in every project, and it also provides support for a whole bunch of functionality that's playfully called _magic_ (thank you, Nicholas Reith, for mentioning this in a comment on my previous article).
-
-### Getting magical, thanks to IPython
-
-JupyterLab and other frontends using the IPython kernel can feel like your favorite IDE or terminal emulator environment. I'm a huge fan of how [dotfiles][5] give me the power to use shortcuts, and magic has some dotfile-like behavior as well. For example, check out **[%bookmark][6]**. I've mapped my default development folder, **~/Develop** , to a shortcut I can run at any time and hop right into it.
-
-![Screenshot of commands from JupyterLab][7]
-
-The use of **%bookmark** and **%cd** , alongside the **!** operator (which I introduced in the previous article), are powered by IPython. As the [documentation][8] states:
-
-> To Jupyter users: Magics are specific to and provided by the IPython kernel. Whether Magics are available on a kernel is a decision that is made by the kernel developer on a per-kernel basis.
-
-### Wrapping up
-
-I, as a curious novice, was not quite sure if IPython remained relevant to the Jupyter ecosystem. I now have a new appreciation for the continuing development of IPython now that I realize it's the source of JupyterLab's powerful user experience. It's also a collection of talented contributors who are part of cutting edge research, so be sure to site them if you use Jupyter projects in your academic papers. They make it easy with this [ready-made citation entry][9].
-
-Be sure to keep it in mind when you're thinking about open source projects to contribute to, and check out the [latest release notes][10] for a full list of magical features.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/19/6/ipython-still-heart-jupyterlab
-
-作者:[Matthew Broberg][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/mbbroberg/users/marcobravo
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ilovefs_free_sticker_fsfe_heart.jpg?itok=gLJtaieq (I love Free Software FSFE celebration)
-[2]: https://opensource.com/article/19/5/jupyterlab-python-developers-magic
-[3]: https://blog.jupyter.org/the-big-split-9d7b88a031a7
-[4]: https://jupyter-client.readthedocs.io/en/latest/kernels.html
-[5]: https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory#Unix_and_Unix-like_environments
-[6]: https://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=magic#magic-bookmark
-[7]: https://opensource.com/sites/default/files/uploads/jupyterlab-commands-ipython.png (Screenshot of commands from JupyterLab)
-[8]: https://ipython.readthedocs.io/en/stable/interactive/magics.html
-[9]: https://ipython.org/citing.html
-[10]: https://ipython.readthedocs.io/en/stable/whatsnew/index.html
diff --git a/sources/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md b/sources/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md
deleted file mode 100644
index f4a80828c9..0000000000
--- a/sources/tech/20190621 Three Ways to Lock and Unlock User Account in Linux.md
+++ /dev/null
@@ -1,307 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (heguagnzhi)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Three Ways to Lock and Unlock User Account in Linux)
-[#]: via: (https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/)
-[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
-
-Three Ways to Lock and Unlock User Account in Linux
-======
-
-If password policy had already implemented in your organization, then you no need to look for this options.
-
-However, if you had set up lock period for 24 hours, in this case you might need to unlock the user’s account manually.
-
-This tutorial will help you to manually lock and unlock users account in Linux.
-
-This can be done using the following two Linux Commands in three ways.
-
- * **`passwd:`**The passwd command is used to update user’s authentication tokens. This task is achieved by calling the Linux-PAM and Libuser API
- * **`usermod:`**The usermod command is used to modify/update given user’s account information. It used to add a user to a specific group, etc.,
-
-
-
-To exprement this, we are choosing `daygeek` user account. Let’s see, how to do step by step.
-
-Make a note, you have to use corresponding user account which you need to lock or unlock instead of ours.
-
-You can check the given user account is available or not in system by using `id Command`. Yes, my account is available in the system.
-
-```
-# id daygeek
-
-uid=2240(daygeek) gid=2243(daygeek) groups=2243(daygeek),2244(ladmin)
-```
-
-### Method-1: How To Lock, Unlock and Check Status of the Given User Account in Linux Using passwd Command?
-
-The passwd command is one of the frequently used command by Linux administrator very often.
-
-It used to update user’s authentication tokens in the `/etc/shadow` file.
-
-Run the passwd command with the `-l` switch to lock the given user account.
-
-```
-# passwd -l daygeek
-
-Locking password for user daygeek.
-passwd: Success
-```
-
-You can check the locked account status either passwd command or grep the given user name from /etc/shadow file.
-
-Checking the user account locked status using passwd command.
-
-```
-# passwd -S daygeek
-or
-# passwd --status daygeek
-
-daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
-```
-
-This will output a short information about the status of the password for a given account.
-
- * **`LK:`**` ` Password locked
- * **`NP:`**` ` No password
- * **`PS:`**` ` Password set
-
-
-
-Checking the locked user account status using `/etc/shadow` file. Two exclamation mark will be added in front of the password, if the account is already locked.
-
-```
-# grep daygeek /etc/shadow
-
-daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
-```
-
-Run the passwd command with the `-u` switch to unlock the given user account.
-
-```
-# passwd -u daygeek
-
-Unlocking password for user daygeek.
-passwd: Success
-```
-
-### Method-2: How To Lock, Unlock and Check Status of the Given User Account in Linux Using usermod Command?
-
-Even, the usermod command also frequently used by Linux administrator very often.
-
-The usermod command is used to modify/update given user’s account information. It used to add a user to a specific group, etc.,
-
-Run the usermod command with the `-L` switch to lock the given user account.
-
-```
-# usermod --lock daygeek
-or
-# usermod -L daygeek
-```
-
-You can check the locked account status either passwd command or grep the given user name from /etc/shadow file.
-
-Checking the user account locked status using passwd command.
-
-```
-# passwd -S daygeek
-or
-# passwd --status daygeek
-
-daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
-```
-
-This will output a short information about the status of the password for a given account.
-
- * **`LK:`**` ` Password locked
- * **`NP:`**` ` No password
- * **`PS:`**` ` Password set
-
-
-
-Checking the locked user account status using /etc/shadow file. Two exclamation mark will be added in front of the password, if the account is already locked.
-
-```
-# grep daygeek /etc/shadow
-
-daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
-```
-
-Run the usermod command with the `-U` switch to unlock the given user account.
-
-```
-# usermod --unlock daygeek
-or
-# usermod -U daygeek
-```
-
-### Method-3: How To Disable, Enable SSH Access To the Given User Account in Linux Using usermod Command?
-
-Even, the usermod command also frequently used by Linux administrator very often.
-
-The usermod command is used to modify/update given user’s account information. It used to add a user to a specific group, etc.,
-
-Alternativly this can be done by assigning the `nologin` shell to the given user. To do so, run the below command.
-
-```
-# usermod -s /sbin/nologin daygeek
-```
-
-You can check the locked user account details by greping the given user name from /etc/passwd file.
-
-```
-# grep daygeek /etc/passwd
-
-daygeek:x:2240:2243::/home/daygeek:/sbin/nologin
-```
-
-We can enable the user ssh access by assigning back to the old shell.
-
-```
-# usermod -s /bin/bash daygeek
-```
-
-### How To Lock, Unlock and Check Status of Multiple User Account in Linux Using Shell Script?
-
-If you would like to lock/unlock more than one account then you need to look for script.
-
-Yes, we can write a small shell script to perform this. To do so, use the following shell script.
-
-Create The Users list. Each user should be in separate line.
-
-```
-$ cat user-lists.txt
-
-u1
-u2
-u3
-u4
-u5
-```
-
-Use the following shell script to lock multiple users account in Linux.
-
-```
-# user-lock.sh
-
-#!/bin/bash
-for user in `cat user-lists.txt`
-do
-passwd -l $user
-done
-```
-
-Set an executable permission to `user-lock.sh` file.
-
-```
-# chmod + user-lock.sh
-```
-
-Finally run the script to achieve this.
-
-```
-# sh user-lock.sh
-
-Locking password for user u1.
-passwd: Success
-Locking password for user u2.
-passwd: Success
-Locking password for user u3.
-passwd: Success
-Locking password for user u4.
-passwd: Success
-Locking password for user u5.
-passwd: Success
-```
-
-Use the following shell script to check locked users account in Linux.
-
-```
-# vi user-lock-status.sh
-
-#!/bin/bash
-for user in `cat user-lists.txt`
-do
-passwd -S $user
-done
-```
-
-Set an executable permission to `user-lock-status.sh` file.
-
-```
-# chmod + user-lock-status.sh
-```
-
-Finally run the script to achieve this.
-
-```
-# sh user-lock-status.sh
-
-u1 LK 2019-06-10 0 99999 7 -1 (Password locked.)
-u2 LK 2019-06-10 0 99999 7 -1 (Password locked.)
-u3 LK 2019-06-10 0 99999 7 -1 (Password locked.)
-u4 LK 2019-06-10 0 99999 7 -1 (Password locked.)
-u5 LK 2019-06-10 0 99999 7 -1 (Password locked.)
-```
-
-Use the following shell script to unlock multiple users account in Linux.
-
-```
-# user-unlock.sh
-
-#!/bin/bash
-for user in `cat user-lists.txt`
-do
-passwd -u $user
-done
-```
-
-Set an executable permission to `user-unlock.sh` file.
-
-```
-# chmod + user-unlock.sh
-```
-
-Finally run the script to achieve this.
-
-```
-# sh user-unlock.sh
-
-Unlocking password for user u1.
-passwd: Success
-Unlocking password for user u2.
-passwd: Success
-Unlocking password for user u3.
-passwd: Success
-Unlocking password for user u4.
-passwd: Success
-Unlocking password for user u5.
-passwd: Success
-```
-
-Run the same shell script `user-lock-status.sh` to check these locked user accounts got unlocked in Linux.
-
-```
-# sh user-lock-status.sh
-
-u1 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
-u2 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
-u3 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
-u4 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
-u5 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
-```
---------------------------------------------------------------------------------
-
-via: https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/
-
-作者:[Magesh Maruthamuthu][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://www.2daygeek.com/author/magesh/
-[b]: https://github.com/lujun9972
diff --git a/sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md b/sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md
new file mode 100644
index 0000000000..df5686d0a5
--- /dev/null
+++ b/sources/tech/20190624 Linux Package Managers Compared - AppImage vs Snap vs Flatpak.md
@@ -0,0 +1,222 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Linux Package Managers Compared – AppImage vs Snap vs Flatpak)
+[#]: via: (https://www.ostechnix.com/linux-package-managers-compared-appimage-vs-snap-vs-flatpak/)
+[#]: author: (editor https://www.ostechnix.com/author/editor/)
+
+Linux Package Managers Compared – AppImage vs Snap vs Flatpak
+======
+
+![3 Linux Package Managers Compared][1]
+
+**Package managers** provide a way of packaging, distributing, installing, and maintaining apps in an operating system. With modern desktop, server and IoT applications of the Linux operating system and the hundreds of different distros that exist, it becomes necessary to move away from platform specific packaging methods to platform agnostic ones. This post explores 3 such tools, namely **AppImage** , **Snap** and **Flatpak** , that each aim to be the future of software deployment and management in Linux. At the end we summarize a few key findings.
+
+### 1\. AppImage
+
+**AppImage** follows a concept called **“One app = one file”**. This is to be understood as an AppImage being a regular independent “file” containing one application with everything it needs to run in the said file. Once made executable, the AppImage can be run like any application in a computer by simply double-clicking it in the users file system.[1]
+
+It is a format for creating portable software for Linux without requiring the user to install the said application. The format allows the original developers of the software (upstream developers) to create a platform and distribution independent (also called a distribution-agnostic binary) version of their application that will basically run on any flavor of Linux.
+
+AppImage has been around for a long time. **Klik** , a predecessor of AppImage was created by **Simon Peter** in 2004. The project was shut down in 2011 after not having passed the beta stage. A project named **PortableLinuxApps** was created by Simon around the same time and the format was picked up by a few portals offering software for Linux users. The project was renamed again in 2013 to its current name AppImage and a repository has been maintained in GitHub (project [link][2]) with all the latest changes to the same since 2018.[2][3]
+
+Written primarily in **C** and donning the **MIT license** since 2013, AppImage is currently developed by **The AppImage project**. It is a very convenient way to use applications as demonstrated by the following features:
+
+ 1. AppImages can run on virtually any Linux system. As mentioned before applications derive a lot of functionality from the operating system and a few common libraries. This is a common practice in the software world since if something is already done, there is no point in doing it again if you can pick and choose which parts from the same to use. The problem is that many Linux distros might not have all the files a particular application requires to run since it is left to the developers of that particular distro to include the necessary packages. Hence developers need to separately include the dependencies of the application for each Linux distro they are publishing their app for. Using the AppImage format developers can choose to include all the libraries and files that they cannot possibly hope the target operating system to have as part of the AppImage file. Hence the same AppImage format file can work on different operating systems and machines without needing granular control.
+ 2. The one app one file philosophy means that user experience is simple and elegant in that users need only download and execute one file that will serve their needs for using the application.
+ 3. **No requirement of root access**. System administrators will require people to have root access to stop them from messing with computers and their default setup. This also means that people with no root access or super user privileges cannot install the apps they need as they please. The practice is common in a public setting (such as library or university computers or on enterprise systems). The AppImage file does not require users to “install” anything and hence users need only download the said file and **make it executable** to start using it. This removes the access dilemmas that system administrators have and makes their job easier without sacrificing user experience.
+ 4. **No effect on core operating system**. The AppImage-application format allows using applications with their full functionality without needing to change or even access most system files. Meaning whatever the applications do, the core operating system setup and files remain untouched.
+ 5. An AppImage can be made by a developer for a particular version of their application. Any updated version is made as a different AppImage. Hence users if need be can **test multiple versions of the same application** by running different instances using different AppImages. This is an invaluable feature when you need to test your applications from an end-user POV to notice differences.
+ 6. Take your applications where you go. As mentioned previously AppImages are archived files of all the files that an application requires and can be used without installing or even bothering about the distribution the system uses. Hence if you have a set of apps that you use regularly you may even mount a few AppImage files on a thumb drive and take it with you to use on multiple computers running multiple different distros without worrying whether they’ll work or not.
+
+
+
+Furthermore, the **AppImageKit** allows users from all backgrounds to build their own AppImages from applications they already have or for applications that are not provided an AppImage by their upstream developer.
+
+The package manager is platform independent but focuses primarily on software distribution to end users on their desktops with a dedicated daemon **AppImaged** for integrating the AppImage formats into respective desktop environments. AppImage is supported natively now by a variety of distros such as Ubuntu, Debian, openSUSE, CentOS, Fedora etc. and others may set it up as per their needs. AppImages can also be run on servers with limited functionality via the CLI tools included.
+
+To know more about AppImages, go to the official [**AppImage documentation**][3] page.
+
+* * *
+
+**Suggested read:**
+
+ * [**Search Linux Applications On AppImage, Flathub And Snapcraft Platforms**][4]
+
+
+
+* * *
+
+### 2\. Snappy
+
+**Snappy** is a software deployment and package management system like AppImage or any other package manager for that instance. It is originally designed for the now defunct **Ubuntu Touch** Operating system. Snappy lets developers create software packages for use in a variety of Linux based distributions. The initial intention behind creating Snappy and deploying **“snaps”** on Ubuntu based systems is to obtain a unified single format that could be used in everything from IoT devices to full-fledged computer systems that ran some version of Ubuntu and in a larger sense Linux itself.[4]
+
+The lead developer behind the project is **Canonical** , the same company that pilots the Ubuntu project. Ubuntu had native snap support from version 16.04 LTS with more and more distros supporting it out of the box or via a simple setup these days. If you use Arch or Debian or openSUSE you’ll find it easy to install support for the package manager using simple commands in the terminal as explained later in this section. This is also made possible by making the necessary snap platform files available on the respective repos.[5]
+
+Snappy has the following important components that make up the entire package manager system.[6]
+
+ * **Snap** – is the file format of the packages themselves. Individual applications that are deployed using Snappy are called “Snaps”. Any application may be packaged using the tools provided to make a snap that is intended to run on a different system running Linux. Snap, similar to AppImage is an all-inclusive file and contains all dependencies the application needs to run without assuming them to part of the target system.
+ * **Snapcraft** – is the tool that lets developers make snaps of their applications. It is basically a command that is part of the snap system as well as a framework that will let you build your own snaps.
+ * **Snapd** – is the background daemon that maintains all the snaps that are installed in your system. It integrates into the desktop environment and manages all the files and processes related to working with snaps. The snapd daemon also checks for updates normally **4 times a day** unless set otherwise.
+ * [**Snap Store**][5] – is an online gallery of sorts that lets developers upload their snaps into the repository. Snap store is also an application discovery medium for users and will let users see and experience the application library before downloading and installing them.
+
+
+
+The snapd component is written primarily in **C** and **Golang** whereas the Snapcraft framework is built using **Python**. Although both the modules use the GPLv3 license it is to be noted that snapd has proprietary code from Canonical for its server-side operations with just the client side being published under the GPL license. This is a major point of contention with developers since this involves developers signing a CLA form to participate in snap development.[7]
+
+Going deeper into the finer details of the Snappy package manager the following may be noted:
+
+ 1. Snaps as noted before are all inclusive and contain all the necessary files (dependencies) that the application needs to run. Hence, developers need not to make different snaps for the different distros that they target. Being mindful of the runtimes is all that’s necessary if base runtimes are excluded from the snap.
+ 2. Snappy packages are meant to support transactional updates. Such a transactional update is atomic and fully reversible, meaning you can use the application while its being updated and that if an update does not behave the way its supposed to, you can reverse the same with no other effects whatsoever. The concept is also called as **delta programming** in which only changes to the application are transmitted as an update instead of the whole package. An Ubuntu derivative called **Ubuntu Core** actually promises the snappy update protocol to the OS itself.[8]
+ 3. A key point of difference between snaps and AppImages, is how they handle version differences. Using AppImages different versions of the application will have different AppImages allowing you to concurrently use 2 or more different versions of the same application at the same time. However, using snaps means conforming to the transactional or delta update system. While this means faster updates, it keeps you from running two instances of the same application at the same time. If you need to use the old version of an app you’ll need to reverse or uninstall the new version. Snappy does support a feature called [**“parallel install”**][6] which will let users accomplish similar goals, however, it is still in an experimental stage and cannot be considered to be a stable implementation. Snappy also makes use of channels meaning you can use the beta or the nightly build of an app and the stable version at the same time.[9]
+ 4. Extensive support from major Linux distros and major developers including Google, Mozilla, Microsoft, etc.[4]
+ 5. Snapd the desktop integration tool supports taking **“snapshots”** of the current state of all the installed snaps in the system. This will let users save the current configuration state of all the applications that are installed via the Snappy package manager and let users revert to that state whenever they desire so. The same feature can also be set to automatically take snapshots at a frequency deemed necessary by the user. Snapshots can be created using the **snap save command** in the snapd framework.[10]
+ 6. Snaps are designed to be sandboxed during operation. This provides a much-required layer of security and isolation to users. Users need not worry about snap-based applications messing with the rest of the software on their computer. Sandboxing is implemented using three levels of isolation viz, **classic** , **strict** and **devmode**. Each level of isolation allows the app different levels of access within the file system and computer.[11]
+
+
+
+On the flip side of things, snaps are widely criticized for being centered around **Canonical’s modus operandi**. Most of the commits to the project are by Canonical employees or contractors and other contributors are required to sign a release form (CLA). The sandboxing feature, a very important one indeed from a security standpoint, is flawed in that the sandboxing actually requires certain other core services to run (such as Mir) while applications running the X11 desktop won’t support the said isolation, hence making the said security feature irrelevant. Questionable press releases and other marketing efforts from Canonical and the “central” and closed app repository are also widely criticized aspects of Snappy. Furthermore, the file sizes of the different snaps are also **comparatively very large** compared to the app sizes of the packages made using AppImage.[7]
+
+For more details, check [**Snap official documentation**][7].
+
+* * *
+
+**Related read:**
+
+ * [**Install Snap packages in Arch Linux, and Fedora**][8]
+
+
+
+* * *
+
+### 3\. Flatpak
+
+Like the Snap/Snappy listed above, **Flatpak** is also a software deployment tool that aims to ease software distribution and use in Linux. Flatpak was previously known as **“xdg-app”** and was based on concept proposed by **Lennart Poettering** in 2004. The idea was to contain applications in a secure virtual sandbox allowing for using applications **without the need of root privileges** and without compromising on the systems security. **Alex** started tinkering with Klik (thought to be a former version of AppImage) and wanted to implement the concept better. **Alexander Larsson** who at the time was working with Red Hat wrote an implementation called xdg-app in 2015 that acted as a pre-cursor to the current Flatpak format.
+
+Flatpak officially came out in 2016 with backing from Red Hat, Endless Computers and Collabora. **Flathub** is the official repository of all Flatpak application packages. At its surface Flatpak like the other is a framework for building and packaging distribution agnostic applications for Linux. It simply requires the developers to conform to a few desktop environment guidelines in order for the application to be successfully integrated into the Flatpak environment.
+
+Targeted primarily at the three popular desktop implementations **FreeDesktop** , **KDE** , and **GNOME** , the Flatpak framework itself is written in **C** and works on a **LGPL** license. The maintenance repository can be accessed via the GitHub link **[here][9]**.
+
+A few features of Flatpak that make it stand apart are mentioned below. Notice that features Flatpak shares with AppImage and Snappy are omitted here.
+
+ * Deep integration into popular Linux desktop environments such as GNOME & KDE so that users can simply use Flatpaks using Graphical software management tools instead of resorting to the terminal. Flatpak can be installed from the default repositories of major desktop environments now and once the apps themselves are set-up they can be used and provide features similar to normal desktop applications.[12][13]
+ * **Forward-compatibility** – Flatpaks are built from the ground up keeping the operating systems core kernel and runtimes in mind. Hence, even if you upgrade or update your distro the Flatpaks you have should still work unless there is a core update. This is especially crucial for people who prefer staying on rolling betas or development versions of their distros. For such people, since the kinks of the OS itself isn’t ironed out usually, the Flatpak application will run seamlessly without having to depend on the OS files or libraries for its operation.[13]
+ * **Sandboxing using Bubblewrap** – snaps are also by default sandboxed in that they run in isolation from the rest of the applications running while you’re using your computer. However, Flatpaks fully seal the application from accessing OS files and user files during its operation by default. This essentially means that system administrators can be certain that Flatpaks that are installed in their systems cannot exploit the computer and the files it contains whereas for end users this will mean that in order to access a few specific functions or user data root permission is required.[14]
+ * Flatpak supports decentralized distribution of application natively however the team behind Flatpak still maintains a central online repository of apps/Flatpaks called **Flathub**. Users may in fact configure Flatpak to use multiple remote repositories as they see necessary. As opposed to snap you can have multiple repositories.[13]
+ * Modular access through the sandbox. Although this capability comes at a great potential cost to the integrity of the system, Flatpak framework allows for channels to be created through the sandbox for exchange of specific information from within the sandbox to the host system or vice versa. The channel is in this case referred to as a portal. A con to this feature is discussed later in the section.[14]
+
+
+
+One of the most criticized aspects of Flatpak however is it’s the sandbox feature itself. Sandboxing is how package managers such as Snappy and Flatpak implement important security features. Sandboxing essentially isolates the application from everything else in the system only allowing for user defined exchange of information from within the sandbox to outside. The flaw with the concept being that the sandbox cannot be inherently impregnable. Data has to be eventually transferred between the two domains and simple Linux commands can simply get rid of the sandbox restriction meaning that malicious applications might potentially jump out of the said sandbox.[15]
+
+This combined with the worse than expected commitment to rolling out security updates for Flatpak has resulted in widespread criticism of the team’s tall claim of providing a secure framework. The blog (named **flatkill** ) linked at the end of this guide in fact mentions a couple of exploits that were not addressed by the Flatpak team as soon as they should’ve been.[15]
+
+For more details, I suggest you to read [**Flatpak official documentation**][10].
+
+* * *
+
+**Related read:**
+
+ * [**A Beginners Guide To Flatpak**][11]
+
+
+
+* * *
+
+### AppImage vs Snap vs Flatpak
+
+The table attached below summarizes all the above findings into a concise and technical comparison of the three frameworks.
+
+**Feature** | **AppImage** | **Snappy** | **Flatpak**
+---|---|---|---
+**Unique feature** | Not an appstore or repository, its simply put a packaging format for software distribution. | Led by Canonical (Same company as Ubuntu), features central app repository and active contribution from Canonical. | Features an app store called FlatHub, however, individuals may still host packages and distribute it.
+**Target system** | Desktops and Servers. | Desktops, Servers, IoT devices, Embedded devices etc. | Desktops and limited function on servers.
+**Libraries/Dependencies** | Base system. Runtimes optional, Libraries and other dependencies packaged. | Base system or via Plugins or can be packaged. | GNOME, KDE, Freedesktop bundled or custom bundled.
+**Developers** | Community Driven led by Simon Peter. | Corporate driven by Canonical Ltd. | Community driven by flatpak team supported by enterprise.
+**Written in** | C. | Golang, C and Python. | C.
+**Initial release** | 2004. | 2014. | 2015.
+**Sandboxing** | Can be implemented. | 3 modes – strict, classic, and devmode with varying confinement capabilities. Runs in isolation. | Isolated but Uses system files to run applications by default.
+**Sandboxing Platform** | Firejail, AppArmor, Bubblewrap. | AppArmor. | Bubblewrap.
+**App Installation** | Not necessary. Will act as self mounted disc. | Installation using snapd. | Installed using flatpak client tools.
+**App Execution** | Can be run after setting executing bit. | Using desktop integrated snap tools. Runs isolated with user defined resources. | Needs to be executed using flatpak command if CLI is used.
+**User Privileges** | Can be run w/o root user access. | Can be run w/o root user access. | Selectively required.
+**Hosting Applications** | Can be hosted anywhere by anybody. | Has to be hosted with Canonical servers which are proprietary. | Can be hosted anywhere by anybody.
+**Portable Execution from non system locations** | Yes. | No. | Yes, after flatpak client is configured.
+**Central Repository** | AppImageHub. | Snap Store. | Flathub.
+**Running multiple versions of the app** | Possible, any number of versions simultaneously. | One version of the app in one channel. Has to be separately configured for more. | Yes.
+**Updating applications** | Using CLI command AppImageUpdate or via an updater tool built into the AppImage. | Requires snapd installed. Supports delta updating, will automatically update. | Required flatpak installed. Update Using flatpak update command.
+**Package sizes on disk** | Application remains archived. | Application remains archived. | Client side is uncompressed.
+
+Here is a long tabular comparison of AppImage vs. Snap vs. Flatpak features. Please note that the comparison is made from an AppImage perspective.
+
+ * [**https://github.com/AppImage/AppImageKit/wiki/Similar-projects#comparison**][12]
+
+
+
+### Conclusion
+
+While all three of these platforms have a lot in common with each other and aim to be platform agnostic in approach, they offer different levels of competencies in a few areas. While Snaps can run on a variety of devices including embedded ones, AppImages and Flatpaks are built with the desktop user in mind. AppImages of popular applications on the other had have superior packaging sizes and portability whereas Flatpak really shines with its forward compatibility when its used in a set it and forget it system.
+
+If there are any flaws in this guide, please let us know in the comment section below. We will update the guide accordingly.
+
+**References:**
+
+ * **[1]** [**Concepts — AppImage documentation**][13]
+ * **[2]** [**Slashdot – Point-and-klik Linux Software Installation**][14]
+ * **[3]** [**History of AppImage project**][15]
+ * **[4][Snapcraft – Snaps are universal Linux packages][16]**
+ * **[5][Installing snapd – Snap documentation][17]**
+ * **[6][Snap documentation][7]**
+ * **[7][On Snappy and Flatpak: business as usual in the Canonical propaganda department][18]**
+ * **[8][Snap Updates are getting smaller, here’s why][19]**
+ * **[9][What Are Linux Snap Packages? Why Use Them?][20]**
+ * **[10][Snapshots – Snap documentation][21]**
+ * **[11][Snap confinement – Snap documentation][22]**
+ * **[12][Desktop Integration – Flatpak documentation][23]**
+ * **[13][Introduction to Flatpak – Flatpak documentation][24]**
+ * **[14][Sandbox Permissions – Flatpak documentation][25]**
+ * **[15][Flatpak – a security nightmare][26]**
+
+
+
+--------------------------------------------------------------------------------
+
+via: https://www.ostechnix.com/linux-package-managers-compared-appimage-vs-snap-vs-flatpak/
+
+作者:[editor][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://www.ostechnix.com/author/editor/
+[b]: https://github.com/lujun9972
+[1]: https://www.ostechnix.com/wp-content/uploads/2019/06/Linux-Package-Managers-Compared-1-720x340.png
+[2]: https://github.com/AppImage/AppImageKit/blob/master/README.md
+[3]: https://docs.appimage.org/
+[4]: https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/
+[5]: https://snapcraft.io/store
+[6]: https://blog.ubuntu.com/2019/06/20/parallel-installs-test-and-run-multiple-instances-of-snaps
+[7]: https://docs.snapcraft.io/
+[8]: https://www.ostechnix.com/install-snap-packages-arch-linux-fedora/
+[9]: https://github.com/flatpak/flatpak
+[10]: http://docs.flatpak.org/en/latest/index.html
+[11]: https://www.ostechnix.com/flatpak-new-framework-desktop-applications-linux/
+[12]: https://github.com/AppImage/AppImageKit/wiki/Similar-projects#comparison
+[13]: https://docs.appimage.org/introduction/concepts.html#one-app-one-file.
+[14]: https://linux.slashdot.org/story/05/01/15/1815210/point-and-klik-linux-software-installation
+[15]: https://github.com/AppImage/AppImageKit/wiki/History#timeline.
+[16]: https://snapcraft.io/#
+[17]: https://docs.snapcraft.io/installing-snapd
+[18]: https://www.happyassassin.net/2016/06/16/on-snappy-and-flatpak-business-as-usual-in-the-canonical-propaganda-department/
+[19]: https://blog.ubuntu.com/2017/08/01/snap-updates-are-getting-smaller-heres-why
+[20]: https://www.feliciano.tech/blog/what-are-linux-snap-packages-why-use-them/
+[21]: https://docs.snapcraft.io/snapshots
+[22]: https://docs.snapcraft.io/snap-confinement
+[23]: http://docs.flatpak.org/en/latest/desktop-integration.html?highlight=desktop%20integration
+[24]: http://docs.flatpak.org/en/latest/introduction.html
+[25]: http://docs.flatpak.org/en/latest/sandbox-permissions.html?highlight=sandboxing
+[26]: https://flatkill.org/
diff --git a/sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md b/sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md
deleted file mode 100644
index 2148648ee4..0000000000
--- a/sources/tech/20190624 With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment.md
+++ /dev/null
@@ -1,110 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (wahailin)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment)
-[#]: via: (https://itsfoss.com/raspberry-pi-4/)
-[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
-
-With Upgraded Specs, Raspberry Pi 4 Takes Aim at Desktop Segment
-======
-
-_**Brief: Raspberry Pi 4 is here with the upgraded technical specifications. You get up to 4 GB of RAM and you can connect two 4K displays with it. With the new hardware, you should be more comfortable using it as a desktop. Starting price remains the $35 like the previous models.**_
-
-The Raspberry Pi Foundation has just launched the new [Raspberry Pi 4 Model B][1].
-
-It comes with some impressive upgrades which makes one of the most powerful [single board computers][2] under $40.
-
-![Raspberry Pi 4][3]
-
-### What’s new in Raspberry Pi 4?
-
-The Raspberry Pi 4 now supports a dual 4K monitor setup – if that is what you are looking for. In addition to this, you get a more powerful processor which can be coupled with up to 4 GB of RAM. That’s almost equivalent to a mid-end laptop.
-
-The upgraded specification makes it a competitor in the [Linux mini-PC][4] segment while the same price tag of $35 gives it an edge over [other single board computers][2].
-
-Right after the launch, it’s almost out of stock at major online stores. So, let us take a look at what makes it so impressive.
-
-#### Raspberry Pi 4 key specifications
-
-![Raspberry Pi 4 Tech Specs][5]
-
- * Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
- * Up to 4GB RAM (choices are 1 GB, 2 GB and 4 GB)
- * WiFi and Bluetooth 5.0
- * 2 USB 3.0 and a USB 2.0 ports
- * 40 pin GPIO header (backward compatible)
- * 2 micro-HDMI ports (supports 4K displays)
- * USB-C (power supply)
- * Gigabit Ethernet
-
-
-
-If you are curious to know more, do check out the [official tech specs][6] on their website.
-
-### Pricing and availability
-
-The pricing for just the Raspberry Pi 4 board starts from $35 and depending on the choice of RAM (1-4 GB), the cost shall vary.
-
- * Raspberry Pi 4 with 1 GB RAM: $35
- * Raspberry Pi 4 with 2 GB RAM: $45
- * Raspberry Pi 4 with 4 GB RAM: $55
-
-
-
-Raspberry Pi 4 is available from different vendors depending on your country. It’s getting out of stock so you should either hurry up or wait for a few days/weeks. You can get purchase information on its official webpage.
-
-[Buy Raspberry Pi 4][1]
-
-You should note that [you need to have additional accessories in order to run Raspberry Pi][7]. This is why there are several starter kits available to give you all the necessary supporting accessories.
-
-[][8]
-
-Suggested read Raspberry Pi Gets RAM Upgrade, In The Same Price
-
-#### Raspberry Pi 4 desktop Kit
-
-![Raspberry Pi 4 Desktop Kit][9]
-
-You can also purchase the official Raspberry Pi 4 desktop kit that comes with a Raspberry Pi 4, its case, keyboard, mouse, micro HDMI cables, USB-C power supply, user guide and 16GB [microSD card with Raspbian installed][10].
-
-![Raspberry Pi Branded Desktop Kit][11]
-
-The entire kit is in red and white color and it looks pretty (if you care for the looks). You can get the purchase information on Raspberry Pi website.
-
-[Raspberry Pi 4 Desktop Kit][12]
-
-#### Raspberry Pi 4 is promising
-
-With all that spec buff, it is definitely going to be one of the best out there. Also, instead of getting an entry-level desktop, Raspberry Pi 4 will be a better choice. You can easily access your documents, manage your spreadsheets, and do a lot of things at a cheaper price tag.
-
-I’m definitely considering to purchase the Raspberry Pi 4 as a spare (but a powerful) entry-level desktop. Well, I won’t be going for the 4K dual monitor setup, but it surely is capable of that, at least on paper.
-
-What do you think about the new Raspberry Pi 4 Model B? Let us know your thoughts in the comments below.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/raspberry-pi-4/
-
-作者:[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://itsfoss.com/author/ankush/
-[b]: https://github.com/lujun9972
-[1]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
-[2]: https://itsfoss.com/raspberry-pi-alternatives/
-[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4.jpeg?resize=800%2C449&ssl=1
-[4]: https://itsfoss.com/linux-based-mini-pc/
-[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-tech-specs.jpg?ssl=1
-[6]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
-[7]: https://itsfoss.com/things-you-need-to-get-your-raspberry-pi-working/
-[8]: https://itsfoss.com/raspberry-pi-gets-ram-upgrade-in-the-same-price/
-[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-4-desktop-kit.jpg?resize=800%2C427&ssl=1
-[10]: https://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/
-[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspberry-pi-desktop-kit-official.jpg?ssl=1
-[12]: https://www.raspberrypi.org/products/raspberry-pi-4-desktop-kit/
diff --git a/sources/tech/20190625 5 tiny Linux distros to try before you die.md b/sources/tech/20190625 5 tiny Linux distros to try before you die.md
deleted file mode 100644
index 2d6cdfb4c6..0000000000
--- a/sources/tech/20190625 5 tiny Linux distros to try before you die.md
+++ /dev/null
@@ -1,268 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (5 tiny Linux distros to try before you die)
-[#]: via: (https://opensource.com/article/19/6/linux-distros-to-try)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/marcobravo)
-
-5 tiny Linux distros to try before you die
-======
-Resurrect an ancient machine, boot a broken system, or ensure a safe
-public computing session with these tiny Linux distros.
-![Hand putting a Linux file folder into a drawer][1]
-
-There are plenty of Linux distributions out there to choose from when you're deciding what to run on a daily basis, yet some are so small that they get little notice. But tiny Linux distributions are powerful innovations: having an entire operating system drive a computer with less than 1GB of storage and half as much RAM is the ultimate software hack.
-
-Tiny distros have many uses, such as:
-
- * Save old and slow computers from the rubbish bin. Reject planned obsolescence and use computers until they fall apart, not just until they start to feel slow.
- * Boot broken or corrupted systems from a thumb drive to recover data or repair boot partitions.
- * Ensure a safe and private environment when on a public computer. If you boot a public computer in a hotel lobby or a library from a thumb drive, you'll know your operating environment is secure.
-
-
-
-There are plenty of lightweight distributions out there, like [Lubuntu][2], [Peppermint OS][3], and [Bodhi][4], but there's something special about the truly tiny. Here are five tiny distros you owe it to yourself to try.
-
-### Tiny Core
-
-![Tiny Core Linux][5]
-
-At 11MB for a text console and 16MB for a GUI, [Tiny Core Linux][6] is almost impossibly small. I dug through my collection of old thumb drives; the smallest one was 128MB, which is still eight times the size of Tiny Core's image.
-
-By default, Tiny Core includes the base OS, assuming you have an Ethernet connection to the internet so you can install only the applications you need. It's such an extremely efficient model that it doesn't even include an application to install the OS (although you can download it from the Tiny Core repository when you're ready to install).
-
-I've run Tiny Core from a 128MB thumb drive on a system with 512MB RAM, and the performance was excellent, as you might expect from an OS that takes only 16MB. Performance slows only when browsing the internet in a web browser, but the blame lies with the complexity of most modern websites more than Tiny Core.
-
-Without a GUI, Tiny Core runs well on a mere 64MB of RAM.
-
-#### Installation
-
-[Download Tiny Core][7] and write it to a thumb drive with **dd** or [Etcher][8].
-
-Installing Tiny Core is easy, once you download the **tc-install** or **tc-install-GUI** application using the **Apps** icon in the launcher bar at the bottom of the screen.
-
-![Tiny Core installer][9]
-
-You have several options to install Tiny Core. You can install it to a thumb drive formatted as a Linux drive (this requires your computer to allow booting from a USB drive, which is common in most modern PCs but was less common for older ones), to a Microsoft FAT thumb drive (a hack for PCs that don't normally boot from USB drives), or even to a directory in an existing Linux partition.
-
-The installation is quick, and when you finish, you can reboot your computer and boot into your Tiny Core Linux OS.
-
-#### Applications
-
-Since it comes with little more than a text editor and a terminal, the first thing you should do is install some applications. The **Apps** icon in the bottom launcher bar displays all the Tiny Core packages available to you. The **Apps** repository also includes important drivers, so it's useful when you're looking to get a WiFi card or a printer working.
-
-When installing a new application or utility, you can choose between having the package load into Tiny Core at boot time or on demand. Choosing to load a package at boot makes it available to you immediately and still available after a reboot (as you would expect). Choosing to load it on demand means the package is available after Tiny Core downloads the package, but after a reboot, it won't be loaded into memory. This may keep your boot time fast and Tiny Core's footprint in RAM tiny, but it also means the package data isn't loaded into memory until you use it for the first time each session.
-
-The application selection is a good mix between user-centric apps, like office and graphics applications, and server-centric, such as [Samba][10] and web servers.
-
-Of course, once you start adding applications to Tiny Core, it becomes less tiny. Even the **Tiny Core Plus** image, which includes all WiFi drivers, on the Tiny Core website is only about 100MB, so "less tiny" is likely still well under 256MB or so.
-
-#### Bottom line
-
-Tiny Core is ideal for old computers with few resources, network boot images, and anyone who values applications over the OS. Tiny Core is a great weekend project: build the OS you want from 16MB until you have just as much of an OS as you need.
-
-### SliTaz
-
-![SliTaz Linux][11]
-
-The [SliTaz Linux][12] image is about 51MB, about four times the size of Tiny Core, with an impressive collection of drivers and applications included. In fact, if you didn't know better, you might think you booted into a 1GB Ubuntu image because everything you'd expect from a basic starter image is there: text editor, web browser, paint program, spreadsheet application, and so on.
-
-I've run SliTaz from a 128MB thumb drive on a system with 512MB RAM, and the performance was excellent. Performance slows when browsing heavy websites, but the included lightweight [Midori][13] browser keeps most sites loading quickly.
-
-At boot time, you can choose to run SliTaz without a GUI; it runs nicely on a mere 64MB of RAM.
-
-#### Installation
-
-There are many download options for SliTaz because its developers and community provide many variations for potential system limitations. For instance, there's a low RAM version for systems with as little as 24MB RAM, a version with Firefox instead of Midori, a version with no extra applications, and so on.
-
-If you're overwhelmed by options and just want to try it out, [download the rolling release][14]. This version is roughly 50MB and is updated weekly. If you fall in love with SliTaz, you can choose a download that's better for your needs—if the rolling release proves to be _too_ fresh for you.
-
-Once you've downloaded your choice of SliTaz image, write it to a thumb drive with **dd** or [Etcher][8] and reboot.
-
-Installing SliTaz to a thumb drive or hard drive is done through the **TazPanel** application. It guides you through partitioning your disk (as needed) and installs SliTaz to the destination you choose.
-
-![SliTaz installer][15]
-
-#### Applications
-
-The **TazPanel** application is SliTaz's control center. If you're a fan of OpenSUSE or Mageia (née Mandrake), you might find TazPanel familiar, at least in concept: it's a single application that provides access to system configuration, hardware detection, user and group management, system updates, and application installation.
-
-Available applications satisfy most basic requirements, meaning if you're not picky about which application you use to accomplish a task, then SliTaz's repositories probably have something for you. If you have specific requirements (GIMP 2.10 instead of GIMP 2.8, for instance), then you'll have to learn how to generate SliTaz packages. The good news is that the **tazpkg** command can convert from several packaging formats, including:
-
- * Debian packages (.deb, .udeb)
- * RPM packages (.rpm)
- * Slackware packages (.tgz)
- * Puppy packages (.sfs, .pet)
- * NuTyX packages (.cards.tar.xz)
- * Arch and Alpine Linux packages (.apk, .pkg.tar.gz, .pkg.tar.xz)
- * OpenWrt packages (.ipk, .opk)
- * Paldo packages (.tar.bz2)
- * Void packages (.xbps)
- * Tiny Core packages (.tce, .tcel, .tcem, .tcz)
-
-
-
-#### Bottom line
-
-SliTaz is a fast, small Linux distribution with a centralized control panel that makes it easy to learn. Because its packaging tools can convert from other Linux packaging formats, its application selection is theoretically vast, making it easy for you to design your work environment with all your favorite tools. SliTaz is small but lethal, just like its arachnid logo.
-
-### Porteus
-
-![Porteus Linux][16]
-
-[Porteus][17] offers a few desktop options, with the smallest image around 270MB and the largest 350MB. That makes it one of the largest of tiny Linux images, but most of that space is dedicated to ensuring a smooth Linux desktop experience, to the point that you'll likely forget you're using a live distribution. Installing Porteus to an SSD drive or loading it to RAM during boot results in such a flawlessly smooth environment that you won't believe your OS occupies less space than half a CD-ROM.
-
-Porteus is tiny in the sense that its base image is comparatively small, but depending on the desktop you choose, it can easily require up to 1GB of RAM to run. While other tiny Linux distributions tend to capitalize on minimalist applications to preserve space and resources, Porteus expects you to use it as you would any other distribution. Install all your favorite apps and drivers and forget you're running on a tiny, compressed root filesystem.
-
-#### Installation
-
-Download Porteus from your [closest Porteus mirror][18], choosing from MATE, LXQT, LXDE, OpenBox, XFCE, Cinnamon, or KDE, depending upon your preference. If you have no preference, the MATE or KDE desktop are both good at balancing image size with a familiar-feeling desktop experience.
-
-![Porteus installer][19]
-
-opensource.com
-
-You can install Porteus to a thumb drive or an internal hard drive using the instructions in the [official installation guide][20]. The process is similar either way and results in a compressed root filesystem that never changes. It's a stable and contained filesystem upon which you overlay your changes as you use it. When you reboot, changes you make and applications you install are loaded into memory, so your environment is just as you left it.
-
-#### Applications
-
-Applications are called "modules" in Porteus lingo and are available from the [Unified Slackware Package Manager][21] (USM), which draws from five different Slackware repositories, meaning you have plenty of applications to choose from.
-
-#### Bottom line
-
-Porteus is a full Linux experience with a fraction of the space usually required. It's an excellent portable Linux distribution with lots of desktop options and lots of applications.
-
-### Bodhi Linux
-
-![Bodhi Linux][22]
-
-[Bodhi Linux][4] might not look tiny at first glance, with an ISO image of 740MB, but once it's installed, you'll be amazed at just how tiny it is. Bodhi runs smoothly on only 512MB of RAM but looks and feels like the desktop of tomorrow. Bodhi uses the [Enlightenment][23] desktop, a beautiful user interface that's lovingly crafted to be both small and powerful.
-
-Bodhi doesn't just use Enlightenment, though, it adds to it. Bodhi's configuration applications and system setting panels are custom interfaces to Enlightenment's sometimes overwhelming array of options. Bodhi makes some sane default choices for you and provides a subset of options. If you're a die-hard Enlightenment user, Bodhi's interpretation might not be pure enough for you, but for many users, Bodhi brings focus to the Enlightenment desktop.
-
-#### Installation
-
-[Download Bodhi Linux][24], write it to a thumb drive with **dd** or [Etcher][8], and reboot.
-
-The Bodhi installer is available from the **Applications** menu in the **Preferences** category. The installation application is **Ubiquity**, so the process is the same as installing Ubuntu. If you've never installed Ubuntu, don't worry; it's one of the easiest to install.
-
-![Bodhi installer][25]
-
-#### Applications
-
-Bodhi is based on the latest long term support (LTS) Ubuntu Linux release, so your available software knows almost no bounds. If it's available for Ubuntu Linux, Bohdi has access to it.
-
-#### Bottom line
-
-Bodhi Linux is a step down from the size of a typical Ubuntu install and a step up from many other minimalist Ubuntu environments because it uses Enlightenment. If you're looking for a Linux distribution that runs lighter than most without resorting to overlay filesystems and application modules, then Bodhi is the distribution for you.
-
-### Puppy Linux
-
-![Puppy Linux][26]
-
-Before there was Tiny Core or SliTaz or [AntiX][27] or Porteus, there was [Puppy Linux][28]. One of the original tiny Linux distributions, Puppy has endured for a decade and a half as a reliable, bootable OS for old computers and new users alike.
-
-Upon first boot, Puppy does its best to guide the user through any necessary steps to ensure everything works as expected. It's a lot of windows to wade through, but once you get through it all, you know without a doubt what works and what doesn't before you choose whether to install.
-
-Puppy is almost 300MB and failed to work on anything under 1GB RAM in my tests, so it's not exactly the tiniest Linux available. However, it's still a great, under-1GB operating system, and of the OSes in that category, it's one of the very friendliest.
-
-#### Installation
-
-[Download Puppy Linux][29] and write it to a thumb drive with **dd** or [Etcher][8] or burn it to a CD or DVD, then reboot.
-
-![Puppy installer][30]
-
-Puppy can install onto nearly anything that accepts data. The installer application, available from the top launcher bar, is called **Puppy Installer**, and it manages installing Puppy and applications for Puppy.
-
-Puppy Installer steps you through the process of installing the OS onto whatever media you have available. Puppy can boot from a thumb drive, an optical disc, a hard drive, and even an SD card. I've used Puppy on a computer with no hard drive whatsoever, no working optical drive, and no option to boot from USB. Because Puppy can write your configuration options to just about anything, I was able to use it with persistent data storage to an external device.
-
-#### Applications
-
-The **Puppy Installer** application is also used to install apps onto Puppy. Because Puppy is based on Ubuntu, there aren't likely to be any Linux packages missing from its repositories, and if there are, you can probably use a [Flatpak][31].
-
-#### Bottom line
-
-Puppy is the original tiny Linux. While it's not the tiniest any more, it's by far the easiest.
-
-### Bonus: Silverblue
-
-![SilverBlue, not tiny, but tiny-adjacent][32]
-
-The concept of tiny Linux has changed over the years. Long ago, a tiny Linux distribution was something you downloaded onto a CD-R and ran from your optical drive while saving changes to external media. Later, it was something you ran from a thumb drive with dedicated space for persistent changes. Now it's all of those things plus the ability to install to internal drives or directories.
-
-What no one expected was for Linux to kick off the craze for containers, in which applications are self-contained Linux systems running in a para-virtualized environment. What was once a niche hobby for people who either loved to optimize disk space or who loved to resurrect ancient computers quickly became a salient requirement for developers who wanted to develop containers without adding too much overhead to their applications. All the work put into the minimalist, ephemeral Linux distributions suddenly paid off in an unexpected way.
-
-With the concept of what a root filesystem looks like, the Fedora Project's [Silverblue][33] experiment is an effort to create an immutable OS. It's an operating system that never changes and instead gets updates and application installs in the form of, essentially, containers.
-
-Silverblue at 2.1GB is by no means a tiny Linux distribution, but in many ways, it's a child of the tiny Linux and container movements.
-
-#### Installation
-
-[Download Silverblue][34] and write it to a thumb drive with **dd** or [Etcher][8] or burn it to a CD or DVD, then reboot.
-
-After booting into Silverblue, install it to an internal hard drive using [Anaconda][35], the standard, friendly Fedora Linux installer.
-
-![Anaconda installer][36]
-
-#### Applications
-
-Silverblue doesn't install applications in the traditional sense; instead, it runs containers over the top of its base OS. Specifically, it uses Flatpaks for GUI applications and [Toolbox][37] for commands.
-
-Because Flatpaks aren't nearly as common as traditional Fedora RPM packages, Silverblue also provides **package layering**, a way to convert Fedora RPM packages to Silverblue.
-
-#### Bottom line
-
-Silverblue could be a fun experiment testing out emerging technology, or it could be the future of the desktop OS. It's tiny only in the sense that its root filesystem remains the same size regardless of updates and applications added onto it, but it's worth looking at to see where the strange obsession with tiny distributions has delivered the Linux community and industry. Don't forget to tip your hat to the 11MB pioneers on your way out.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/19/6/linux-distros-to-try
-
-作者:[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/users/marcobravo
-[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]: http://lubuntu.net
-[3]: http://peppermintos.com
-[4]: https://www.bodhilinux.com/
-[5]: https://opensource.com/sites/default/files/uploads/tinycore.jpg (Tiny Core Linux)
-[6]: http://tinycorelinux.net/
-[7]: http://tinycorelinux.net/welcome.html
-[8]: https://www.balena.io/etcher/
-[9]: https://opensource.com/sites/default/files/uploads/tc-install-gui.png (Tiny Core installer)
-[10]: https://www.samba.org/
-[11]: https://opensource.com/sites/default/files/uploads/slitaz.jpg (SliTaz Linux)
-[12]: http://www.slitaz.org/en/
-[13]: https://github.com/midori-browser/core
-[14]: http://slitaz.org/en/get/#rolling
-[15]: https://opensource.com/sites/default/files/uploads/slitaz-install.jpg (SliTaz installer)
-[16]: https://opensource.com/sites/default/files/uploads/porteus.jpg (Porteus Linux)
-[17]: http://www.porteus.org/
-[18]: http://porteus.org/porteus-mirrors.txt
-[19]: https://opensource.com/sites/default/files/images/porteus-installer.png (Porteus installer)
-[20]: http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/114-official-porteus-installation-guide.html
-[21]: http://www.porteus.org/tutorials/9-modules/149-usm.html
-[22]: https://opensource.com/sites/default/files/uploads/bodhi.jpg (Bodhi Linux)
-[23]: https://www.enlightenment.org/
-[24]: https://www.bodhilinux.com/download
-[25]: https://opensource.com/sites/default/files/uploads/bodhi-install.jpg (Bodhi installer)
-[26]: https://opensource.com/sites/default/files/uploads/puppy.jpg (Puppy Linux)
-[27]: https://antixlinux.com/
-[28]: http://puppylinux.com/
-[29]: http://puppylinux.com/index.html#download
-[30]: https://opensource.com/sites/default/files/uploads/puppy-install.jpg (Puppy installer)
-[31]: https://docs.fedoraproject.org/en-US/fedora-silverblue/getting-started/#flatpak
-[32]: https://opensource.com/sites/default/files/uploads/silverblue.jpg (SilverBlue, not tiny, but tiny-adjacent)
-[33]: https://silverblue.fedoraproject.org/
-[34]: https://silverblue.fedoraproject.org/download
-[35]: https://fedoraproject.org/wiki/Anaconda
-[36]: https://opensource.com/sites/default/files/uploads/silverblue-install.jpg (Anaconda installer)
-[37]: https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/
diff --git a/sources/tech/20190625 The innovation delusion.md b/sources/tech/20190625 The innovation delusion.md
deleted file mode 100644
index cfb74e42b9..0000000000
--- a/sources/tech/20190625 The innovation delusion.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (The innovation delusion)
-[#]: via: (https://opensource.com/open-organization/19/6/innovation-delusion)
-[#]: author: (Jim Whitehurst https://opensource.com/users/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans)
-
-The innovation delusion
-======
-Innovation is a messy process. Our stories about it aren't. We shouldn't
-confuse the two.
-![gears and lightbulb to represent innovation][1]
-
-If [traditional planning is dead][2], then why do so many organizations still invest in planning techniques optimized for the Industrial Revolution?
-
-One reason might be that we trick ourselves into thinking innovation is the kind of thing we can accomplish with a structured, linear process. When we do this, I think we're confusing our _stories_ about innovation with the _process_ of innovation itself—and the two are very different.
-
-The _process_ of innovation is chaotic and unpredictable. It doesn't operate according to clean, regimented timelines. It's filled with iterative phases, sudden changes in direction, various starts and stops, dead ends, (hopefully productive) failures, and unknowable variables. It's messy.
-
-But the stories we tell ourselves about innovation, including the books and articles we read about great inventions and the tales we tell each other about our successes in the workplace, tidy that process up. Think about how many social media posts you've seen that feature nothing but the "high points."
-
-That's the nature of good storytelling. It takes a naturally scattered collection of moments and puts them neatly into a beginning, middle, and end. It smoothes out all the rough patches and makes a result seem inevitable from the start, despite whatever moments of uncertainty, panic, even despair we experienced along the way.
-
-We shouldn't confuse messy process with simplified story. When we do, we might mistakenly assume we can approach innovation challenges with the same practices we bring to neat and linear processes. In other words, we apply a set of management techniques appropriate for one set of activities (for more rote, mechanical, and prescriptive tasks) to a set of activities they aren't really suited for (more creative, non-linear work requiring autonomy and experimentation).
-
-If traditional planning is dead, then why do so many organizations still invest in planning techniques optimized for the Industrial Revolution?
-
-### An innovation story
-
-Here's [one of my favorite examples][2] of how this idea in action.
-
-In the 1970s, the British motorcycle industry was desperately trying to figure out why its U.S. market share was plummeting while Honda's was skyrocketing. The company hired my former employer, the Boston Consulting Group, to help them figure out what was going wrong. BCG gathered some historical data, reviewed a two-decade sequence of events, and developed a neat, linear story explaining Honda's success.
-
-Honda, [BCG concluded][3], had executed an ingenious strategy: enter the U.S market with smaller motorcycles it could sell at lower cost, use the economies of scale it had developed in the Japense market to set low prices and grow a market, then further leverage those economies of scale to grow their share in the States as demand grew. By all accounts, Honda had done it brilliantly, playing to its strengths while thoroughly and accurately assessing the new, target U.S. consumer. It had outsmarted, outflanked, and outperformed competitors with a well-executed plan.
-
-It _sounded_ great. But the reality was much less straightforward.
-
-Yes, Honda _did_ want to enter the U.S. motorcycle market. It initially attempted to [copy its competitors there][4], building the larger bikes Americans seemed to favor. But bikes like that weren't one of Honda's strengths, and their versions had reliability issues. To make matters worse, their models didn't look much different than other offerings already in the market, so they weren't standing out. Suffice it to say, sales were not booming.
-
-But in a happy coincidence, Honda's Japanese representatives visiting the States had brought their own motorcycles with them. Those bikes were different than the ones the company was attempting to sell to the American market. They were smaller, zippier, less bulky, more efficient, and generally less expensive. Sears took notice, contacted the reps, and the companies struck a deal that let Sears carry this new motorcycle—called the "Super Cub"—in its American stores.
-
-And the rest, as they say, is history. The Super Cub would go on to become the [best-selling motorized vehicle of all time][5], and Honda [continues to produce it today][6].
-
-In hindsight, the events that brought the Super Cub to the U.S. seem logical, almost boring. But Honda owed its success less to an ingenious master plan and much more to serendipity and happenstance than most people care to admit.
-
-When success depends on things we don't or can't predict, is getting exactly what you've planned for good enough?
-
-### Open (and messy) innovation
-
-Organizations (and especially leaders) like to think that success is always planned—that they've become masters of chaos and can almost predict the future. But they're often making those assessments with the benefit of hindsight, telling the stories of their haphazard journey in a way that organizes the chaos, essentially reflecting on a period of uncertainty and saying "we meant to do that."
-
-But as I said, we shouldn't assume those stories are mirror reflections of the innovation process itself and build future initiatives or experiments on that mistaken assumption.
-
-Imagine another motorcycle manufacturer looking to replicate Honda's success with the Super Cub by following BCG's narrative to the letter. Because the _story_ of Honda's success seems so logical and linear, the new company might assume it could use similar processes and get the same results: plan objectives, prescribe behaviors, and execute against knowable outcomes. But we know that Honda didn't really win its market with that kind of "plan, prescribe, execute" mentality. It won through flexibility and a bit of blind luck—something more like "[try, learn, modify][7]."
-
-When we're able to appreciate and accept that the innovation process is messy, we allow ourselves to think differently about approaching innovation in our organizations. We can begin building the kinds of open and agile organizations capable of _responding to innovation as it happens_ instead of over-investing resources into pre-formed plans that try to _force_ innovation into a linear timeline.
-
-I saw this kind of approach several years ago, when Red Hat released a new version of a product that included a major technology update. [Version 5.4 of Red Hat Enterprise Linux][8] was the first to include full support for a technology called the Kernel-based Virtual Machine (or "KVM"). For us it was a significant innovation that promised to deliver immense value not only to customers and partners, but also to open source software communities.
-
-The technology was evolving quickly. Luckily, because we're an open organization, we were adaptable enough to respond to that innovation as it was happening and help our customers and partners take advantage of it. It was too important, and the competitive landscape too volatile, to justify withholding just so we could "save" it for a milestone moment like version 6.0.
-
-When you go back and review [the archived release notes][9] for Red Hat Enterprise Linux, you'll see that it doesn't "read" like a typical software innovation tale. A game-changing development pops up at an unpredicted and unremarkable moment (version 5.4), rather than a pre-planned blockbuster milestone (version 6.0). In hindsight, we now know that KVM _was_ the kind of "big bang" advancement that could have warranted a milestone release name like "6.0." But that's just not how the innovation process unfolded.
-
-Don't get me wrong, organizations still need to maintain operational excellence and perform execution-oriented tasks well. But [different kinds of challenges require different kinds of approaches][10], and we need to get better at building flexible organizations just as capable of [responding to the unforeseen or unknowable][11].
-
-An organization great at planning (and executing against that plan) will quite likely get the results it planned for. But when success depends on things we _don't_ or _can't_ predict, is getting exactly what you've planned for good enough?
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/open-organization/19/6/innovation-delusion
-
-作者:[Jim Whitehurst][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/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation)
-[2]: https://www.youtube.com/watch?v=8MCbJmZQM9c
-[3]: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/235319/0532.pdf
-[4]: http://www.howardyu.org/the-revolutionary-approach-honda-took-to-rise-above-competition/
-[5]: https://autoweek.com/article/motorcycles/first-ride-honda-super-cub-c125-abs-all-new-and-still-super-cute
-[6]: https://www.autoblog.com/2019/02/13/2019-honda-super-cub-first-ride-review/
-[7]: https://opensource.com/open-organization/18/3/try-learn-modify
-[8]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.4_release_notes/index
-[9]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.0_release_notes/index
-[10]: https://opensource.com/open-organization/19/4/managed-enabled-empowered
-[11]: https://www.linkedin.com/pulse/how-plan-world-full-unknowns-jim-whitehurst/
diff --git a/sources/tech/20190626 4 open source Android apps for writers.md b/sources/tech/20190626 4 open source Android apps for writers.md
new file mode 100644
index 0000000000..a5a2609bf3
--- /dev/null
+++ b/sources/tech/20190626 4 open source Android apps for writers.md
@@ -0,0 +1,105 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (4 open source Android apps for writers)
+[#]: via: (https://opensource.com/article/19/6/android-apps-writers)
+[#]: author: (Scott Nesbitt https://opensource.com/users/scottnesbitt/users/tiwarinitish86)
+
+4 open source Android apps for writers
+======
+Get some writing work done on your mobile device with these four apps.
+![Hands holding a mobile phone with open on the screen][1]
+
+While I'm of two minds when it comes to smartphones and tablets, I have to admit they can be useful. Not just for keeping in touch with people or using the web but also to do some work when I'm away from my computer.
+
+For me, that work is _writing_—articles, [blog posts][2], essays for my [weekly letter][3], e-book chapters, and more. I've tried many (probably too many!) writing apps for Android over the years. Some of them were good. Others fell flat.
+
+Here are four of my favorite open source Android apps for writers. You might find them as useful as I do.
+
+### Markor
+
+If you're a writer, you need to write with something. A good choice for that job is [Markor][4], a simple, flexible Markdown editor.
+
+All you need to do is fire up Markor, create a new document, and start typing. You can add Markdown formatting by hand or by clicking a button on the toolbar. When it comes to writing, Markor has no frills. It's just you and your words, as it should be.
+
+![Markor app][5]
+
+The app automatically saves your work to your phone or tablet's filesystem. If you sync your phone with a service like [Nextcloud][6], you can set up Markor to save your work in a folder the Nextcloud mobile app uses. That way, you don't need to shuffle files around manually.
+
+Markor has a few other useful features. One of those is a simple preview. Another is a task list, which uses the same format as [Todo.txt][7] (a popular to-do list manager). When you're researching a writing project, you can create a list of bookmarks. You can also export what you're writing as an HTML or a PDF file.
+
+### Orgzly
+
+Some writers swear by outlines. Others hate them with a passion, finding outlines restricting. I'm in the former camp. On my laptop, I do most of my outlining using [Emacs][8] and [Org mode][9]. Bringing the Org mode experience to my phone or tablet is easy using [Orgzly][10].
+
+Don't let the fact that Orgzly uses Org mode's format turn you off. You don't need to be an Emacs guru, or even an Emacs user, to benefit from it.
+
+Create a new _notebook_ (the label Orgzly gives an outline) and add items to it. In addition to a title, you can add tags and notes to each item in your outline. Since outlines are fluid, you can move items up, down, and around. If you need to, you can also sync your notebooks with your service or tool of choice.
+
+![Orgzly app][11]
+
+Orgzly takes a bit of getting used to. Once you do, Orgzly's a great app for creating not only outlines but also notes and [task lists][12].
+
+### Carnet
+
+Notes are the lifeblood of any writer. They're a record of thoughts on a subject. They're snippets and rough drafts. They're research and quotes. And a lot more.
+
+You can use Markor or Orgzly to take notes, but they're not for everyone. If you're one of those people, you'll want to check out [Carnet][13].
+
+Unlike some note-taking apps, Carnet lets you add formatting to your notes. You can change the size, color, and alignment of fonts and add character formatting. You can also insert images into a note. When you finish, you can sync the note either with [Carnet's online service][14] or with Nextcloud.
+
+![Carnet app][15]
+
+The way Carnet displays notes reminds me of Google Keep's layout—as tiles, which you can color, that display a note's title and its first few lines. That's not a bad thing—you can see what a note is about with a glance.
+
+### Anysoft Keyboard
+
+When I write on a phone or tablet, I usually use a folding Bluetooth keyboard. It's a lot faster and easier than typing with an onscreen keyboard. But there are times when I don't have my physical keyboard with me. The stock Android keyboard? It really doesn't do it for me. Instead, I use [Anysoft Keyboard][16].
+
+Why? I prefer the layout and spacing. On top of that, it has several keyboard themes to choose from. Some are compact, while others space the keys out a bit more widely. Don't use QWERTY? Not a problem. Anysoft Keyboard also supports the [Dvorak][17], [Colemak][18], [Workman][19], and [Halmak][20] layouts.
+
+![Anysoft Keyboard][21]
+
+While I'm more of a poly-not than a polyglot, I know more than a couple of people will find Anysoft Keyboard's [language support][22] to be a boon when they're writing in a language other than English.
+
+Have an open source Android app that you find indispensable when writing? Feel free to share it by leaving a comment.
+
+About 10 years ago, when I got my first mobile phone, I hardly knew anything about its operating...
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/android-apps-writers
+
+作者:[Scott Nesbitt][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/scottnesbitt/users/tiwarinitish86
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003588_01_rd3os.combacktoschoolserieshe_rh_041x_0.png?itok=tfg6_I78 (Hands holding a mobile phone with open on the screen)
+[2]: https://scottnesbitt.online
+[3]: https://buttondown.email/weeklymusings
+[4]: https://gsantner.net/project/markor.html
+[5]: https://opensource.com/sites/default/files/uploads/markor-app.png (Markor app)
+[6]: https://opensource.com/article/19/5/mobile-apps-nextcloud
+[7]: http://todotxt.org/
+[8]: https://www.gnu.org/software/emacs/
+[9]: https://opensource.com/article/19/1/productivity-tool-org-mode
+[10]: http://www.orgzly.com/
+[11]: https://opensource.com/sites/default/files/uploads/orgzly.png (Orgzly app)
+[12]: https://opensource.com/article/17/4/emacs-extensions-organization
+[13]: https://f-droid.org/en/packages/com.spisoft.quicknote/
+[14]: https://carnet.live/index.php/login
+[15]: https://opensource.com/sites/default/files/uploads/carnet.png (Carnet app)
+[16]: https://anysoftkeyboard.github.io/
+[17]: https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
+[18]: https://en.wikipedia.org/wiki/Colemak
+[19]: https://en.wikipedia.org/wiki/Keyboard_layout#Workman
+[20]: https://github.com/MadRabbit/halmak
+[21]: https://opensource.com/sites/default/files/uploads/anysoft.png (Anysoft Keyboard)
+[22]: https://anysoftkeyboard.github.io/languages/
diff --git a/sources/tech/20190626 How a trip to China inspired Endless OS and teaching kids to hack.md b/sources/tech/20190626 How a trip to China inspired Endless OS and teaching kids to hack.md
new file mode 100644
index 0000000000..2431364051
--- /dev/null
+++ b/sources/tech/20190626 How a trip to China inspired Endless OS and teaching kids to hack.md
@@ -0,0 +1,98 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (How a trip to China inspired Endless OS and teaching kids to hack)
+[#]: via: (https://opensource.com/article/19/6/endless-digital-literacy)
+[#]: author: (Don Watkins https://opensource.com/users/don-watkins)
+
+How a trip to China inspired Endless OS and teaching kids to hack
+======
+Matt Dalio, Endless OS founder and CEO, opens up on how his company is
+expanding digital literacy to all corners of the world.
+![Digital literacy.][1]
+
+Last year, I decided to try out [Endless OS][2], a lightweight, Linux-based operating system developed to power inexpensive computers for developing markets. I wrote about [installing and setting it up][3]. Endless OS is unique because it uses a read-only root file system managed by OSTree and Flatpak, but the Endless company is unique for its approach to education.
+
+Late last year, Endless announced the [Hack][4], a $299 laptop manufactured by Asus that encourages kids to code, and most recently the company revealed [The Third Terminal][5], a group of video games designed to get kids coding while they're having fun. Since I'm so involved in teaching kids to code, I wanted to learn more about [Endless Studios][6], the company behind Endless OS, The Third Terminal, [The Endless Mission][7], a sandbox-style game created in partnership with E-Line Media, and other ventures targeted at expanding digital literacy and agency among children around the world.
+
+I reached out to [Matt Dalio][8], Endless' founder, CEO, and chief of product and founder of the China Care Foundation, to ask about Endless and his charitable work supporting orphaned children with special needs in China.
+
+**Don Watkins**: What encouraged you to be a social entrepreneur?
+
+**Matt Dalio**: The most impactful chapter of my life was when I lived in China at age 11. I became interested in social entrepreneurship after spending a summer in an orphanage in China when I was 16.
+
+That one summer quickly evolved into a decade of traveling to China to support orphanages in need, resulting in the founding of the [China Care Foundation][9]. It has since raised $14 million to provide surgery, foster placement, and adoption grants for thousands of special needs children.
+
+A decade later, my two worlds of technology and emerging markets merged when I realized that billions of people would get smartphones within the decade. I also saw that computers, the work and study tool that we run our productive lives with, weren't going to spread nearly as quickly.
+
+I started by creating Endless OS, which is focused on democratizing our most powerful technology tools the way smartphones have done for our mobile technology. We solved cost and connectivity barriers and put internet connectivity within reach worldwide. We were building the best platform for youth in emerging markets. It became clear that, as we did that, we were actually building the best technology education platform for kids there as well as in the US.
+
+We then grew our product vision further to use games and our operating system to teach kids to code, enabling digital literacy that spans from children who have nothing to kids who are fortunate enough to have access to the latest in technology and want to understand how to shape it.
+
+My goal through all of this is to help unlock discovery so every kid can realize the joy of creation. Our most recent launch at Endless Studios of our coding education games ties all of this together with games focused on digital literacy for kids in the US and the rest of the world.
+
+All of that started with China, decades ago at age 11. It's all one long story.
+
+**DW**: How did your experience founding the China Care Foundation at the age of 16 change you?
+
+**MD**: The biggest thing that I discovered in building China Care was the needs of underserved communities. The need of a child becomes truly palpable when you are holding her in your arms. I also discovered that I had the capability to do something about it. At 16, I was just a normal kid, but I happened to realize that I could get a child life-changing surgery by merely raising $500 for her. My actions could impact lives. That has stuck with me. Today at Endless, I am focused on using technology to improve lives at scale. Helping these kids guided me to my life purpose. I found my mission.
+
+**DW**: How did the fact that 3 billion people in the world did not have a computer animate your vision?
+
+**MD**: When I was in India in 2010, smartphones had not yet arrived, but it became quickly obvious that they would. Billions of people were about to be connected to the internet. While this rapidly came to fruition, my secondary discovery was that people there also wanted computers. In the developed world, we get our work done with computers. It is our productivity tool. Without a computer, children and adults do not have access to education and the modern economy. I spent months in the field researching this, and it became obvious that there was still a need for computers. People still wanted them.
+
+I remember a conversation I had in a tea shop in Bangladesh. It was a strange place to ask for life advice, but I did. After hours of talking to this new friend, asking, "Should I do this… should I leave everything and devote my life to this?" he begged me, "Do this, for my country…for my people. Please." I had dozens of conversations like this, and those sent me on my course. Our vision at Endless has continued to expand and to encompass educational technology everywhere, but it all started there.
+
+**DW**: Why Linux and why desktop/laptop computers, rather than smartphones?
+
+**MD**: I began Endless without any appreciation for open source software. Today, I believe with every fiber of my being that the desktop _must_ be open source. It is where we do our real work. Despite still accounting for half of web traffic and there being twice as many computers as there were when the smartphone was launched, and despite the fact that our office buildings and schools are full of people using their PCs, the big technology companies have stopped investing in the PC.
+
+As I look at what we are doing at Endless in international internet access and in coding education, none of it would be possible if we didn't have an open source OS. Although it would have been a lot easier to build upon the standard platforms, we have to touch code at the core of the OS to really solve the problems we have. We are a case study of why it is so important to have an open source operating system. The PC must be protected from the decisions of a few companies.
+
+Finally, as for why PCs, I challenge you to give up your computer for a month and then ask the same question. Can you do that? Question answered.
+
+**DW**: What is the vision of Endless and The Third Terminal? How do you see the games helping children become better coders?
+
+**MD**: Most of the engineers we were interviewing at Endless learned to code in the same way—by hacking their video games. For them, this was much more fun than playing them. The crucial insight from this was, "What if you could build video games in which everything were hackable?"
+
+This was the catalyst for launching Endless Studios, which is now working with almost a dozen global game studios that are all developing games that teach kids to code. We are first and foremost, a game company. These games are built by gamers. It just so happens that creation is a game mechanic that kids love. I believe that code is the greatest creation tool—the ultimate Minecraft.
+
+We are beginning with our first set of games on [thethirdterminal.com][10]. You'll see our games expand into something much bigger soon. We cannot wait to share it with you.
+
+**DW**: Can you tell me more about Hack computers?
+
+**MD**: Hack is a platform that integrates Endless OS into a coding platform. Coding takes place in an operating system because the tools of coding are built upon that operating system. We have harnessed this to expose children to the real tools that real engineers use in a safe environment. We have partnered with Asus to build the Hack PC as a solid, full-featured computer. My Hack laptop is the only laptop I use.
+
+**DW**: What software comes on Hack computers?
+
+**MD**: Hack comes with hundreds of apps. We have everything from Chrome, Steam, Spotify, and Skype to WhatsApp, a full office suite, and tons of games. Most importantly, we have a full developer suite and an array of coding education pathways. Again, I have everything I need in Hack. It's my only laptop today.
+
+**DW**: What is the importance of building digital agency around the world?
+
+**MD**: If our children are going to grow up and be prepared for the future, they had better know how to use the technology that is affecting every corner of our world. We must prepare them. If they do not start early, they will be digitally illiterate. It is as simple as that. Endless wants our children to be able to shape their technology, rather than being shaped by it.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/endless-digital-literacy
+
+作者:[Don Watkins][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/don-watkins
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_EDU_DigitalLiteracy_520x292.png?itok=ktHMrse6 (Digital literacy.)
+[2]: https://endlessos.com/
+[3]: https://opensource.com/article/18/2/meet-endless-os-lightweight-linux
+[4]: https://hack-computer.com/
+[5]: https://www.thethirdterminal.com/home
+[6]: https://endlessnetwork.com/
+[7]: https://theendlessmission.com/
+[8]: https://www.linkedin.com/in/mattdalio/
+[9]: https://www.chinacare.org/
+[10]: http://www.thethirdterminal.com/home
diff --git a/sources/tech/20190627 How to use Tig to browse Git logs.md b/sources/tech/20190627 How to use Tig to browse Git logs.md
new file mode 100644
index 0000000000..1b0c88752e
--- /dev/null
+++ b/sources/tech/20190627 How to use Tig to browse Git logs.md
@@ -0,0 +1,216 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (How to use Tig to browse Git logs)
+[#]: via: (https://opensource.com/article/19/6/what-tig)
+[#]: author: (Olaf Alders https://opensource.com/users/oalders/users/mbbroberg/users/marcobravo)
+
+How to use Tig to browse Git logs
+======
+Tig is more than just a text-mode interface for Git. Here's how it can
+enhance your daily workflow.
+![A person programming][1]
+
+If you work with Git as your version control system, you've likely already resigned yourself to the fact that Git is a complicated beast. It is a fantastic tool, but it can be cumbersome to navigate Git repositories. That's where a tool like [Tig][2] comes in.
+
+From the [Tig man page][3]:
+
+> Tig is an ncurses-based text-mode interface for git(1). It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.
+
+This basically means that Tig provides a text-based user interface you can run in your terminal. Tig makes it easy to browse your Git logs, but it can do much more than just bounce you around from your last commit to a previous one.
+
+![Tig screenshot][4]
+
+Many of the examples in this quick introduction to Tig have been poached directly from its excellent man page. I highly recommend reading it to learn more.
+
+### Install Tig
+
+ * Fedora and RHEL: **sudo dnf install tig**
+ * Ubuntu and Debian: **sudo apt install tig**
+ * MacOS: **brew install tig**
+
+
+
+See the official [installation instructions][5] for even more options.
+
+### Browse commits in your current branch
+
+If you want to browse the latest commits in your branch, enter:
+
+
+```
+`tig`
+```
+
+That's it. This three-character command will launch a browser where you can navigate the commits in your current branch. You can think of it as a wrapper around **git log**.
+
+To navigate the output, you can use the Up and Down arrow keys to move from one commit to another. Pressing the Return/Enter key will open a vertical split with the contents of the chosen commit on the right-hand side. You can continue to browse up and down in your commit history on the left-hand side, and your changes will appear on the right. Use **k** and **j** to navigate up and down by line and **-** and the Space Bar to page up and down on the right-hand side. Use **q** to exit the right-hand pane.
+
+Searching on **tig** output is simple as well. Use **/** to search forward and **?** to search backward on both the left and right panes.
+
+![Searching Tig][6]
+
+That's enough to get you started navigating your commits. There are too many key bindings to cover here, but clicking **h** will display a Help menu where you can discover its navigation and command options. You can also use **/** and **?** to search the Help menu. Use **q** to exit Help.
+
+![Tig Help][7]
+
+### Browse revisions for a single file
+
+Since Tig is a wrapper around **git log**, it conveniently accepts the same arguments that can be passed to **git log**. For instance, to browse the commit history for a single file, enter:
+
+
+```
+`tig README.md`
+```
+
+Compare this with the output of the Git command being wrapped to get a clearer view of how Tig enhances the output.
+
+
+```
+`git log README.md`
+```
+
+To include the patches in the raw Git output, you can add a **-p** option:
+
+
+```
+`git log -p README.md`
+```
+
+If you want to narrow the commits down to a specific date range, try something like this:
+
+
+```
+`tig --after="2017-01-01" --before="2018-05-16" -- README.md`
+```
+
+Again, you can compare this with the raw Git version:
+
+
+```
+`git log --after="2017-01-01" --before="2018-05-16" -- README.md`
+```
+
+### Browse who changed a file
+
+Sometimes you want to find out who made a change to a file and why. The command:
+
+
+```
+`tig blame README.md`
+```
+
+is essentially a wrapper around **git blame**. As you would expect, it allows you to see who the last person was to edit a given line, and it also allows you to navigate to the commit that introduced the line. This is somewhat like the **:Gblame** command Vim's **vim-fugitive** plugin provides.
+
+### Browse your stash
+
+If you're like me, you may have a pile of edits in your stash. It's easy to lose track of them. You can view the latest item in your stash via:
+
+
+```
+`git stash show -p stash@{0}`
+```
+
+You can find the second most recent item via:
+
+
+```
+`git stash show -p stash@{1}`
+```
+
+and so on. If you can recall these commands whenever you need them, you have a much sharper memory than I do.
+
+As with the Git commands above, Tig makes it easy to enhance your Git output with a simple invocation:
+
+
+```
+`tig stash`
+```
+
+Try issuing this command in a repository with a populated stash. You'll be able to browse _and search_ your stash items, giving you a quick overview of everything you saved for a rainy day.
+
+### Browse your refs
+
+A Git ref is the hash of something you have committed. This includes files as well as branches. Using the **tig refs** command allows you to browse all of your refs and drill down to specific commits.
+
+
+```
+`tig refs`
+```
+
+When you're finished, use **q** to return to a previous menu.
+
+### Browse git status
+
+If you want to view which files have been staged and which are untracked, use **tig status**, a wrapper around **git status**.
+
+![Tig status][8]
+
+### Browse git grep
+
+You can use the **grep** command to search for expressions in text files. The command **tig grep** allows you to navigate the output of **git grep**. For example:
+
+
+```
+`tig grep -i foo lib/Bar`
+```
+
+will navigate the output of a case-insensitive search for **foo** in the **lib/Bar** directory.
+
+### Pipe output to Tig via STDIN
+
+If you are piping a list of commit IDs to Tig, you must use the **\--stdin** flag so that **tig show** reads from stdin. Otherwise, **tig show** launches without input (rendering an empty screen).
+
+
+```
+`git rev-list --author=olaf HEAD | tig show --stdin`
+```
+
+### Add custom bindings
+
+You can customize Tig with an [rc][9] file. Here's how you can configure Tig to your liking, using the example of adding some helpful custom key bindings.
+
+Create a file in your home directory called **.tigrc**. Open **~/.tigrc** in your favorite editor and add:
+
+
+```
+# Apply the selected stash
+bind stash a !?git stash apply %(stash)
+
+# Drop the selected stash item
+bind stash x !?git stash drop %(stash)
+```
+
+Run **tig stash** to browse your stash, as above. However, with these bindings in place, you can press **a** to apply an item from the stash to your repository and **x** to drop an item from the stash. Keep in mind that you'll need to perform these commands when browsing the stash _list_. If you're browsing a stash _item_, enter **q** to exit that view and press **a** or **x** to get the effect you want.
+
+For more information, you can read more about [Tig key bindings][10].
+
+### Wrapping up
+
+I hope this has been a helpful demonstration of how Tig can enhance your daily workflow. Tig can do even more powerful things (such as staging lines of code), but that's outside the scope of this introductory article. There's enough information here to make you dangerous, but there's still more to explore.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/what-tig
+
+作者:[Olaf Alders][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/oalders/users/mbbroberg/users/marcobravo
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_keyboard_laptop_development_code_woman.png?itok=vbYz6jjb (A person programming)
+[2]: https://jonas.github.io/tig/
+[3]: http://manpages.ubuntu.com/manpages/bionic/man1/tig.1.html
+[4]: https://opensource.com/sites/default/files/uploads/tig.jpg (Tig screenshot)
+[5]: https://jonas.github.io/tig/INSTALL.html
+[6]: https://opensource.com/sites/default/files/uploads/tig-search.png (Searching Tig)
+[7]: https://opensource.com/sites/default/files/uploads/tig-help.png (Tig Help)
+[8]: https://opensource.com/sites/default/files/uploads/tig-status.png (Tig status)
+[9]: https://en.wikipedia.org/wiki/Run_commands
+[10]: https://github.com/jonas/tig/wiki/Bindings
diff --git a/sources/tech/20190627 OpenAssessIt Tooklit helps improve website accessibility.md b/sources/tech/20190627 OpenAssessIt Tooklit helps improve website accessibility.md
new file mode 100644
index 0000000000..43ab924a8a
--- /dev/null
+++ b/sources/tech/20190627 OpenAssessIt Tooklit helps improve website accessibility.md
@@ -0,0 +1,64 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (OpenAssessIt Tooklit helps improve website accessibility)
+[#]: via: (https://opensource.com/article/19/6/openassessit-toolkit)
+[#]: author: (Jeff Macharyas https://opensource.com/users/jeffmacharyas/users/petercheer)
+
+OpenAssessIt Tooklit helps improve website accessibility
+======
+Open source application reports website accessibility problems in
+human-readable format so it is easier to find and fix them.
+![web development and design, desktop and browser][1]
+
+People with disabilities often feel [excluded from society][2], despite laws like the Americans with Disabilities Act and the UK's Equality Act 2010 that were created to safeguard accessibility for people with different abilities. This is even true on the web. According to the [Web Accessibility Initiative][3]:
+
+> _When websites and web tools are properly designed and coded, people with disabilities can use them. However, currently many sites and tools are developed with accessibility barriers that make them difficult or impossible for some people to use._
+
+Unfortunately, because of poor website design decisions, a lot of content on the web (such as PDFs) is not accessible to people with hearing, sight, mobility, neurological, and other disabilities, and as the population rapidly ages, accessibility-related problems will increase.
+
+Fortunately, many businesses, governments, and other organizations are taking strides to remedy inaccessible websites. There are two paths to achieving accessibility: fixing existing websites and doing the right things when sites are created. Fixing a website that has been in use for many years—with hundreds of pages, posts, images, and PDFs—can be a daunting task. Every element must be scrutinized for problems, and sometimes the fix is not obvious nor easy to accomplish.
+
+There are many [tools][4] available to check and fix website accessibility issues, including [OpenAssessIt Toolkit][5], a new open source tool developed by [Joel Crawford-Smith][6], a self-described "relentless web accessibility fanatic" and "cat aficionado."
+
+[OpenAssessIt][7] converts [Chrome Lighthouse][8] files into visual, human-readable web accessibility assessments. Lighthouse audits websites for accessibility issues and reports its findings as text that can be viewed in the browser or exported as a JSON file with valuable hidden data.
+
+OpenAssessIt consumes Lighthouse's data-rich JSON files and outputs them in [Markdown][9], which is easy for people to read and edit. It also takes screenshots of each failing element and provides suggestions on how to fix each issue. Automated tools help detect accessibility issues, but a human must evaluate the validity and seriousness of each problem. "Seeing the issues visually [is] a good tool for training and development," Joel says.
+
+The toolkit also includes [OpenDiffIt][10] to help prevent accidentally re-checking PDF files that have already been validated as accessible. It identifies new or modified PDF files by comparing user-generated CSV files from server logs or analytics, generating a unique hash for every file, and marking each one as New, Same, or Modified (based on the hash). By using OpenDiffIt, users can make sure all new or revised PDF files are validated without doing unnecessary work.
+
+### OpenAssessIt development
+
+Joel developed the OpenAssessIt Toolkit with Python, which he says "makes development fun."
+
+OpenAssessIt is available as a native version that requires Python, headless Chrome, and Selenium, and as a simple Docker version, which doesn't require any Python knowledge to use. OpenDiffIt is only available as a Python version, but Joel says he hopes to make a Docker version available soon.
+
+Joel concedes the OpenAssessIt Toolkit is still in a "primitive" stage and says it is a good option for people who don't have the money for big, enterprise-wide solutions. He hopes the software will be politely "roasted" by the open source community to help him improve it. He would also like help to give the tool a graphical user interface that is easier for less tech-savvy people to use.
+
+Accessibility is an ongoing endeavor, and people like Joel Crawford-Smith are making the task less daunting by developing open source solutions.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/openassessit-toolkit
+
+作者:[Jeff Macharyas][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/jeffmacharyas/users/petercheer
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/web_browser_desktop_devlopment_design_system_computer.jpg?itok=pfqRrJgh (web development and design, desktop and browser)
+[2]: https://rightsinfo.org/49-of-disabled-people-feel-excluded-from-society/
+[3]: https://www.w3.org/WAI/
+[4]: https://www.w3.org/WAI/ER/tools/
+[5]: https://github.com/OpenAssessItToolkit
+[6]: http://joelcrawfordsmith.com/
+[7]: https://github.com/OpenAssessItToolkit/openassessit
+[8]: https://developers.google.com/web/tools/lighthouse/
+[9]: https://en.wikipedia.org/wiki/Markdown
+[10]: https://github.com/OpenAssessItToolkit/opendiffit
diff --git a/sources/tech/20190627 RPM packages explained.md b/sources/tech/20190627 RPM packages explained.md
new file mode 100644
index 0000000000..3fb3cee6b2
--- /dev/null
+++ b/sources/tech/20190627 RPM packages explained.md
@@ -0,0 +1,339 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (RPM packages explained)
+[#]: via: (https://fedoramagazine.org/rpm-packages-explained/)
+[#]: author: (Ankur Sinha "FranciscoD" https://fedoramagazine.org/author/ankursinha/)
+
+RPM packages explained
+======
+
+![][1]
+
+Perhaps the best known way the Fedora community pursues its [mission of promoting free and open source software and content][2] is by developing the [Fedora software distribution][3]. So it’s not a surprise at all that a very large proportion of our community resources are spent on this task. This post summarizes how this software is “packaged” and the underlying tools such as _rpm_ that make it all possible.
+
+### RPM: the smallest unit of software
+
+The editions and flavors ([spins][4]/[labs][5]/[silverblue][6]) that users get to choose from are all very similar. They’re all composed of various software that is mixed and matched to work well together. What differs between them is the exact list of tools that goes into each. That choice depends on the use case that they target. The basic unit of all of these is an RPM package file.
+
+RPM files are archives that are similar to ZIP files or tarballs. In fact, they uses compression to reduce the size of the archive. However, along with files, RPM archives also contain metadata about the package. This can be queried using the _rpm_ tool:
+```
+
+```
+
+$ rpm -q fpaste
+fpaste-0.3.9.2-2.fc30.noarch
+
+$ rpm -qi fpaste
+Name : fpaste
+Version : 0.3.9.2
+Release : 2.fc30
+Architecture: noarch
+Install Date: Tue 26 Mar 2019 08:49:10 GMT
+Group : Unspecified
+Size : 64144
+License : GPLv3+
+Signature : RSA/SHA256, Thu 07 Feb 2019 15:46:11 GMT, Key ID ef3c111fcfc659b9
+Source RPM : fpaste-0.3.9.2-2.fc30.src.rpm
+Build Date : Thu 31 Jan 2019 20:06:01 GMT
+Build Host : buildhw-07.phx2.fedoraproject.org
+Relocations : (not relocatable)
+Packager : Fedora Project
+Vendor : Fedora Project
+URL :
+Bug URL :
+Summary : A simple tool for pasting info onto sticky notes instances
+Description :
+It is often useful to be able to easily paste text to the Fedora
+Pastebin at and this simple script
+will do that and return the resulting URL so that people may
+examine the output. This can hopefully help folks who are for
+some reason stuck without X, working remotely, or any other
+reason they may be unable to paste something into the pastebin
+
+$ rpm -ql fpaste
+/usr/bin/fpaste
+/usr/share/doc/fpaste
+/usr/share/doc/fpaste/README.rst
+/usr/share/doc/fpaste/TODO
+/usr/share/licenses/fpaste
+/usr/share/licenses/fpaste/COPYING
+/usr/share/man/man1/fpaste.1.gz
+```
+
+```
+
+When an RPM package is installed, the _rpm_ tools know exactly what files were added to the system. So, removing a package also removes these files, and leaves the system in a consistent state. This is why installing software using _rpm_ is preferred over installing software from source whenever possible.
+
+### Dependencies
+
+Nowadays, it is quite rare for software to be completely self-contained. Even [fpaste][7], a simple one file Python script, requires that the Python interpreter be installed. So, if the system does not have Python installed (highly unlikely, but possible), _fpaste_ cannot be used. In packager jargon, we say that “Python is a **run-time dependency** of _fpaste_“.
+
+When RPM packages are built (the process of building RPMs is not discussed in this post), the generated archive includes all of this metadata. That way, the tools interacting with the RPM package archive know what else must must be installed so that fpaste works correctly:
+```
+
+```
+
+$ rpm -q --requires fpaste
+/usr/bin/python3
+python3
+rpmlib(CompressedFileNames) <= 3.0.4-1
+rpmlib(FileDigests) <= 4.6.0-1
+rpmlib(PayloadFilesHavePrefix) <= 4.0-1
+rpmlib(PayloadIsXz) <= 5.2-1
+
+$ rpm -q --provides fpaste
+fpaste = 0.3.9.2-2.fc30
+
+$ rpm -qi python3
+Name : python3
+Version : 3.7.3
+Release : 3.fc30
+Architecture: x86_64
+Install Date: Thu 16 May 2019 18:51:41 BST
+Group : Unspecified
+Size : 46139
+License : Python
+Signature : RSA/SHA256, Sat 11 May 2019 17:02:44 BST, Key ID ef3c111fcfc659b9
+Source RPM : python3-3.7.3-3.fc30.src.rpm
+Build Date : Sat 11 May 2019 01:47:35 BST
+Build Host : buildhw-05.phx2.fedoraproject.org
+Relocations : (not relocatable)
+Packager : Fedora Project
+Vendor : Fedora Project
+URL :
+Bug URL :
+Summary : Interpreter of the Python programming language
+Description :
+Python is an accessible, high-level, dynamically typed, interpreted programming
+language, designed with an emphasis on code readability.
+It includes an extensive standard library, and has a vast ecosystem of
+third-party libraries.
+
+The python3 package provides the "python3" executable: the reference
+interpreter for the Python language, version 3.
+The majority of its standard library is provided in the python3-libs package,
+which should be installed automatically along with python3.
+The remaining parts of the Python standard library are broken out into the
+python3-tkinter and python3-test packages, which may need to be installed
+separately.
+
+Documentation for Python is provided in the python3-docs package.
+
+Packages containing additional libraries for Python are generally named with
+the "python3-" prefix.
+
+$ rpm -q --provides python3
+python(abi) = 3.7
+python3 = 3.7.3-3.fc30
+python3(x86-64) = 3.7.3-3.fc30
+python3.7 = 3.7.3-3.fc30
+python37 = 3.7.3-3.fc30
+```
+
+```
+
+### Resolving RPM dependencies
+
+While _rpm_ knows the required dependencies for each archive, it does not know where to find them. This is by design: _rpm_ only works on local files and must be told exactly where they are. So, if you try to install a single RPM package, you get an error if _rpm_ cannot find the package’s run-time dependencies. This example tries to install a package downloaded from the Fedora package set:
+```
+
+```
+
+$ ls
+python3-elephant-0.6.2-3.fc30.noarch.rpm
+
+$ rpm -qpi python3-elephant-0.6.2-3.fc30.noarch.rpm
+Name : python3-elephant
+Version : 0.6.2
+Release : 3.fc30
+Architecture: noarch
+Install Date: (not installed)
+Group : Unspecified
+Size : 2574456
+License : BSD
+Signature : (none)
+Source RPM : python-elephant-0.6.2-3.fc30.src.rpm
+Build Date : Fri 14 Jun 2019 17:23:48 BST
+Build Host : buildhw-02.phx2.fedoraproject.org
+Relocations : (not relocatable)
+Packager : Fedora Project
+Vendor : Fedora Project
+URL :
+Bug URL :
+Summary : Elephant is a package for analysis of electrophysiology data in Python
+Description :
+Elephant - Electrophysiology Analysis Toolkit Elephant is a package for the
+analysis of neurophysiology data, based on Neo.
+
+$ rpm -qp --requires python3-elephant-0.6.2-3.fc30.noarch.rpm
+python(abi) = 3.7
+python3.7dist(neo) >= 0.7.1
+python3.7dist(numpy) >= 1.8.2
+python3.7dist(quantities) >= 0.10.1
+python3.7dist(scipy) >= 0.14.0
+python3.7dist(six) >= 1.10.0
+rpmlib(CompressedFileNames) <= 3.0.4-1
+rpmlib(FileDigests) <= 4.6.0-1
+rpmlib(PartialHardlinkSets) <= 4.0.4-1
+rpmlib(PayloadFilesHavePrefix) <= 4.0-1
+rpmlib(PayloadIsXz) <= 5.2-1
+
+$ sudo rpm -i ./python3-elephant-0.6.2-3.fc30.noarch.rpm
+error: Failed dependencies:
+ python3.7dist(neo) >= 0.7.1 is needed by python3-elephant-0.6.2-3.fc30.noarch
+ python3.7dist(quantities) >= 0.10.1 is needed by python3-elephant-0.6.2-3.fc30.noarch
+```
+
+```
+
+In theory, one could download all the packages that are required for _python3-elephant_, and tell _rpm_ where they all are, but that isn’t convenient. What if _python3-neo_ and _python3-quantities_ have other run-time requirements and so on? Very quickly, the **dependency chain** can get quite complicated.
+
+#### Repositories
+
+Luckily, _dnf_ and friends exist to help with this issue. Unlike _rpm_, _dnf_ is aware of **repositories**. Repositories are collections of packages, with metadata that tells _dnf_ what these repositories contain. All Fedora systems come with the default Fedora repositories enabled by default:
+```
+
+```
+
+$ sudo dnf repolist
+repo id repo name status
+fedora Fedora 30 - x86_64 56,582
+fedora-modular Fedora Modular 30 - x86_64 135
+updates Fedora 30 - x86_64 - Updates 8,573
+updates-modular Fedora Modular 30 - x86_64 - Updates 138
+updates-testing Fedora 30 - x86_64 - Test Updates 8,458
+```
+
+```
+
+There’s more information on [these repositories][8], and how they [can be managed][9] on the Fedora quick docs.
+
+_dnf_ can be used to query repositories for information on the packages they contain. It can also search them for software, or install/uninstall/upgrade packages from them:
+```
+
+```
+
+$ sudo dnf search elephant
+Last metadata expiration check: 0:05:21 ago on Sun 23 Jun 2019 14:33:38 BST.
+============================================================================== Name & Summary Matched: elephant ==============================================================================
+python3-elephant.noarch : Elephant is a package for analysis of electrophysiology data in Python
+python3-elephant.noarch : Elephant is a package for analysis of electrophysiology data in Python
+
+$ sudo dnf list \\*elephant\\*
+Last metadata expiration check: 0:05:26 ago on Sun 23 Jun 2019 14:33:38 BST.
+Available Packages
+python3-elephant.noarch 0.6.2-3.fc30 updates-testing
+python3-elephant.noarch 0.6.2-3.fc30 updates
+```
+
+```
+
+#### Installing dependencies
+
+When installing the package using _dnf_ now, it _resolves_ all the required dependencies, then calls _rpm_ to carry out the _transaction_:
+```
+
+```
+
+$ sudo dnf install python3-elephant
+Last metadata expiration check: 0:06:17 ago on Sun 23 Jun 2019 14:33:38 BST.
+Dependencies resolved.
+==============================================================================================================================================================================================
+ Package Architecture Version Repository Size
+==============================================================================================================================================================================================
+Installing:
+ python3-elephant noarch 0.6.2-3.fc30 updates-testing 456 k
+Installing dependencies:
+ python3-neo noarch 0.8.0-0.1.20190215git49b6041.fc30 fedora 753 k
+ python3-quantities noarch 0.12.2-4.fc30 fedora 163 k
+Installing weak dependencies:
+ python3-igor noarch 0.3-5.20150408git2c2a79d.fc30 fedora 63 k
+
+Transaction Summary
+==============================================================================================================================================================================================
+Install 4 Packages
+
+Total download size: 1.4 M
+Installed size: 7.0 M
+Is this ok [y/N]: y
+Downloading Packages:
+(1/4): python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch.rpm 222 kB/s | 63 kB 00:00
+(2/4): python3-elephant-0.6.2-3.fc30.noarch.rpm 681 kB/s | 456 kB 00:00
+(3/4): python3-quantities-0.12.2-4.fc30.noarch.rpm 421 kB/s | 163 kB 00:00
+(4/4): python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch.rpm 840 kB/s | 753 kB 00:00
+\----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Total 884 kB/s | 1.4 MB 00:01
+Running transaction check
+Transaction check succeeded.
+Running transaction test
+Transaction test succeeded.
+Running transaction
+ Preparing : 1/1
+ Installing : python3-quantities-0.12.2-4.fc30.noarch 1/4
+ Installing : python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch 2/4
+ Installing : python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch 3/4
+ Installing : python3-elephant-0.6.2-3.fc30.noarch 4/4
+ Running scriptlet: python3-elephant-0.6.2-3.fc30.noarch 4/4
+ Verifying : python3-elephant-0.6.2-3.fc30.noarch 1/4
+ Verifying : python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch 2/4
+ Verifying : python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch 3/4
+ Verifying : python3-quantities-0.12.2-4.fc30.noarch 4/4
+
+Installed:
+ python3-elephant-0.6.2-3.fc30.noarch python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch python3-quantities-0.12.2-4.fc30.noarch
+
+Complete!
+```
+
+```
+
+Notice how dnf even installed _python3-igor_, which isn’t a direct dependency of _python3-elephant_.
+
+### DnfDragora: a graphical interface to DNF
+
+While technical users may find _dnf_ straightforward to use, it isn’t for everyone. [Dnfdragora][10] addresses this issue by providing a graphical front end to _dnf_.
+
+![dnfdragora \(version 1.1.1-2 on Fedora 30\) listing all the packages installed on a system.][11]
+
+From a quick look, dnfdragora appears to provide all of _dnf_‘s main functions.
+
+There are other tools in Fedora that also manage packages. GNOME Software, and Discover are two examples. GNOME Software is focused on graphical applications only. You can’t use the graphical front end to install command line or terminal tools such as _htop_ or _weechat_. However, GNOME Software does support the installation of [Flatpaks][12] and Snap applications which _dnf_ does not. So, they are different tools with different target audiences, and so provide different functions.
+
+This post only touches the tip of the iceberg that is the life cycle of software in Fedora. This article explained what RPM packages are, and the main differences between using _rpm_ and using _dnf_.
+
+In future posts, we’ll speak more about:
+
+ * The processes that are needed to create these packages
+ * How the community tests them to ensure that they are built correctly
+ * The infrastructure that the community uses to get them to community users in future posts.
+
+
+
+--------------------------------------------------------------------------------
+
+via: https://fedoramagazine.org/rpm-packages-explained/
+
+作者:[Ankur Sinha "FranciscoD"][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/ankursinha/
+[b]: https://github.com/lujun9972
+[1]: https://fedoramagazine.org/wp-content/uploads/2019/06/rpm.png-816x345.jpg
+[2]: https://docs.fedoraproject.org/en-US/project/#_what_is_fedora_all_about
+[3]: https://getfedora.org
+[4]: https://spins.fedoraproject.org/
+[5]: https://labs.fedoraproject.org/
+[6]: https://silverblue.fedoraproject.org/
+[7]: https://src.fedoraproject.org/rpms/fpaste
+[8]: https://docs.fedoraproject.org/en-US/quick-docs/repositories/
+[9]: https://docs.fedoraproject.org/en-US/quick-docs/adding-or-removing-software-repositories-in-fedora/
+[10]: https://src.fedoraproject.org/rpms/dnfdragora
+[11]: https://fedoramagazine.org/wp-content/uploads/2019/06/dnfdragora-1024x558.png
+[12]: https://fedoramagazine.org/getting-started-flatpak/
diff --git a/sources/tech/20190628 How to Install and Use R on Ubuntu.md b/sources/tech/20190628 How to Install and Use R on Ubuntu.md
new file mode 100644
index 0000000000..84699fbc8e
--- /dev/null
+++ b/sources/tech/20190628 How to Install and Use R on Ubuntu.md
@@ -0,0 +1,209 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (How to Install and Use R on Ubuntu)
+[#]: via: (https://itsfoss.com/install-r-ubuntu/)
+[#]: author: (Sergiu https://itsfoss.com/author/sergiu/)
+
+How to Install and Use R on Ubuntu
+======
+
+_**Brief: This tutorial teaches you to install R on Ubuntu. You’ll also learn how to run your first R program in Ubuntu using various methods.**_
+
+[R][1], together with Python, is the most commonly used programming language for statistical computing and graphics, making it easy to work with data. With the growing interest in data analysis, data visualization, data science (the machine learning craze), it is now more popular than ever and is a great tool for anyone looking to dive into this fields.
+
+The good thing about R is that its syntax is pretty straight-forward and you can find many tutorials/guides on how R is used in the real world.
+
+In this article, I’ll cover how to install R on Ubuntu Linux. I’ll also show you how to run your first R program in Linux.
+
+![][2]
+
+### Installing R on Ubuntu
+
+**R** is included in the Ubuntu repositories. It can be easily installed using:
+
+```
+sudo apt install r-base
+```
+
+Do note that this may install a slightly older version. At the time of writing this article, Ubuntu offers version 3.4 whereas the latest is version 3.6.
+
+_I advise sticking with whichever version Ubuntu provides unless you must use the newer version._
+
+In order to get the latest version (or any specific version for that matter), you must use **[CRAN][3]** (The Comprehensive R Archive Network). This is a list of mirrors for downloading the latest version of R. Click on the next section to learn how to install the latest version of R on Ubuntu.
+
+**How to install latest R version 3.6 on Ubuntu (click to expand)**
+
+To get the R version 3.6, you need to add the mirror to your sources list. I have simplified it for you in this command:
+
+```
+sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran35/"
+```
+
+Now you should add the key for the repository:
+
+```
+sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
+```
+
+And then update the repository information and install R:
+
+```
+sudo apt update
+sudo apt install r-base
+```
+
+That’s it.
+
+[][4]
+
+Suggested read How to Create a Bootable Windows 10 USB in Linux
+
+### Using R programming on Ubuntu
+
+R has more than one use. I’ll go over several methods you can use to run R programs.
+
+#### Interactive Mode in R
+
+After having installed **R**, you can run the console using:
+
+```
+R
+```
+
+This should open up the interactive mode:
+
+![R Interactive Mode][5]
+
+This R console is very similar to the **Python** and **Haskell** interactive prompts. You can enter any **R** command and you can do basic mathematical computations. For example:
+
+```
+> 20+40
+[1] 60
+
+> print ("Hello World!")
+[1] "Hello World!"
+```
+
+You could test plotting too:
+
+![R Plotting][6]
+
+You can **quit** using **q()** or pressing **CTRL+c**. When doing so, you will be asked if you want to save a workspace ****image; a workspace ****is an environment for created variables.
+
+#### Running R program with Rscript
+
+The second way to run R programs is in directly on the Linux command line. You can do so using **RScript**, a utility included with **r-base**.
+
+First, you have to save your R program to a file using your [favorite code editor on Linux][7]. The file extension should be .r.
+
+This is my sample R program printing “Hello World”. I have saved it in a file name hello.r.
+
+```
+print("Hello World!")
+a <- rnorm(100)
+plot(a)
+```
+
+To run the R program, use the command like this:
+
+```
+Rscript hello.r
+```
+
+You should get back the output:
+
+```
+[1] "Hello World!"
+```
+
+The plot is going to be saved in the working directory, to a file named **Rplots.pdf**:
+
+![Rplots.pdf][8]
+
+**Note:** _**Rscript**_ _doesn’t load the_ _**methods**_ _package by default. Make sure to [load it explicitly][9] in your script_.
+
+#### Run R scripts with RStudio in Ubuntu
+
+The most common way to use **R** is using [RStudio][10], a great cross-platform open source IDE. You can [install it using deb file in Ubuntu][11]. Download the deb file from the link below. You’ll have to scroll down a bit to locate the DEB files for Ubuntu.
+
+[Download RStudio for Ubuntu][12]
+
+Once you download the DEB file, just double click on it to install it.
+
+Once installed, search for it in the menu and start it. The home window of the application should pop up:
+
+![RStudio Home][13]
+
+Here you have a working console, just like the one you got in the terminal with the **R** command.
+
+[][14]
+
+Suggested read Setting Up Python Environments In Linux and Unix Systems
+
+To create a file, in the top bar click on **File** and select **New File > Rscript** (or **CTRL+Shift+n)**:
+
+![RStudio New File][15]
+
+Press **CTRL+s** to save the file and choose a location and a name it:
+
+![RStudio Save File][16]
+
+After doing so, click on **Session > Set Working Directory > To Source File Location** to change the working directory to the location of your script:
+
+![RStudio Working Directory][17]
+
+You are now ready to go! Write in your code and click run. You should be able to see output both in the console and in the plotting window:
+
+![RStudio Run][18]
+
+**Wrapping Up**
+
+In this article, I showed you step by step how to get started using the **R** programming language on an Ubuntu system. I covered several ways you can go about this: **R console** – useful for testing, **Rscript** – for the terminal lover, **RStudio** – the IDE for your needs.
+
+Whether you are willing to get into data science or simply love statistics, **R** is a good addition to your programming arsenal, being the perfect tool for analyzing data.
+
+If you are absolutely new to R, let me recommend you this excellent book that will teach you fundamentals of R. It’s available on Amazon Kindle.
+
+Preview | Product | Price |
+---|---|---|---
+![Learn R in a Day][19] ![Learn R in a Day][19] | [Learn R in a Day][20] | | [Buy on Amazon][21]
+
+Do you use **R**? Are you just getting into it? Let us know more about how and why you use or want to learn to use **R**!
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/install-r-ubuntu/
+
+作者:[Sergiu][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/sergiu/
+[b]: https://github.com/lujun9972
+[1]: https://www.r-project.org/
+[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/install-r-on-ubuntu.jpg?resize=800%2C450&ssl=1
+[3]: https://cran.r-project.org/
+[4]: https://itsfoss.com/bootable-windows-usb-linux/
+[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/r_interactive_mode.png?fit=800%2C516&ssl=1
+[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/r_plotting.jpg?fit=800%2C434&ssl=1
+[7]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/
+[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/rplots_pdf.png?fit=800%2C539&ssl=1
+[9]: https://www.dummies.com/programming/r/how-to-install-load-and-unload-packages-in-r/
+[10]: https://www.rstudio.com/
+[11]: https://itsfoss.com/install-deb-files-ubuntu/
+[12]: https://www.rstudio.com/products/rstudio/download/#download
+[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_home.jpg?fit=800%2C603&ssl=1
+[14]: https://itsfoss.com/python-setup-linux/
+[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_new_file.png?fit=800%2C392&ssl=1
+[16]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_save_file.png?fit=800%2C258&ssl=1
+[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_working_directory.png?fit=800%2C394&ssl=1
+[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/06/rstudio_run.jpg?fit=800%2C626&ssl=1
+[19]: https://i1.wp.com/images-na.ssl-images-amazon.com/images/I/51oIJTbUlnL._SL160_.jpg?ssl=1
+[20]: https://www.amazon.com/Learn-R-Day-Steven-Murray-ebook/dp/B00GC2LKOK?SubscriptionId=AKIAJ3N3QBK3ZHDGU54Q&tag=chmod7mediate-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00GC2LKOK (Learn R in a Day)
+[21]: https://www.amazon.com/Learn-R-Day-Steven-Murray-ebook/dp/B00GC2LKOK?SubscriptionId=AKIAJ3N3QBK3ZHDGU54Q&tag=chmod7mediate-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00GC2LKOK (Buy on Amazon)
diff --git a/sources/tech/20190701 Get modular with Python functions.md b/sources/tech/20190701 Get modular with Python functions.md
new file mode 100644
index 0000000000..a424323503
--- /dev/null
+++ b/sources/tech/20190701 Get modular with Python functions.md
@@ -0,0 +1,337 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Get modular with Python functions)
+[#]: via: (https://opensource.com/article/19/7/get-modular-python-functions)
+[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/xd-deng/users/nhuntwalker/users/don-watkins)
+
+Get modular with Python functions
+======
+Minimize your coding workload by using Python functions for repeating
+tasks.
+![OpenStack source code \(Python\) in VIM][1]
+
+Are you confused by fancy programming terms like functions, classes, methods, libraries, and modules? Do you struggle with the scope of variables? Whether you're a self-taught programmer or a formally trained code monkey, the modularity of code can be confusing. But classes and libraries encourage modular code, and modular code can mean building up a collection of multipurpose code blocks that you can use across many projects to reduce your coding workload. In other words, if you follow along with this article's study of [Python][2] functions, you'll find ways to work smarter, and working smarter means working less.
+
+This article assumes enough Python familiarity to write and run a simple script. If you haven't used Python, read my [intro to Python][3] article first.
+
+### Functions
+
+Functions are an important step toward modularity because they are formalized methods of repetition. If there is a task that needs to be done again and again in your program, you can group the code into a function and call the function as often as you need it. This way, you only have to write the code once, but you can use it as often as you like.
+
+Here is an example of a simple function:
+
+
+```
+#!/usr/bin/env python3
+
+import time
+
+def Timer():
+ print("Time is " + str(time.time() ) )
+```
+
+Create a folder called **mymodularity** and save the function code as **timestamp.py**.
+
+In addition to this function, create a file called **__init__.py** in the **mymodularity** directory. You can do this in a file manager or a Bash shell:
+
+
+```
+`$ touch mymodularity/__init__.py`
+```
+
+You have now created your own Python library (a "module," in Python lingo) in your Python package called **mymodularity**. It's not a very useful module, because all it does is import the **time** module and print a timestamp, but it's a start.
+
+To use your function, treat it just like any other Python module. Here's a small application that tests the accuracy of Python's **sleep()** function, using your **mymodularity** package for support. Save this file as **sleeptest.py** _outside_ the **mymodularity** directory (if you put this _into_ **mymodularity**, then it becomes a module in your package, and you don't want that).
+
+
+```
+#!/usr/bin/env python3
+
+import time
+from mymodularity import timestamp
+
+print("Testing Python sleep()...")
+
+# modularity
+timestamp.Timer()
+time.sleep(3)
+timestamp.Timer()
+```
+
+In this simple script, you are calling your **timestamp** module from your **mymodularity** package (twice). When you import a module from a package, the usual syntax is to import the module you want from the package and then use the _module name + a dot + the name of the function you want to call_ (e.g., **timestamp.Timer()**).
+
+You're calling your **Timer()** function twice, so if your **timestamp** module were more complicated than this simple example, you'd be saving yourself quite a lot of repeated code.
+
+Save the file and run it:
+
+
+```
+$ python3 ./sleeptest.py
+Testing Python sleep()...
+Time is 1560711266.1526039
+Time is 1560711269.1557732
+```
+
+According to your test, the sleep function in Python is pretty accurate: after three seconds of sleep, the timestamp was successfully and correctly incremented by three, with a little variance in microseconds.
+
+The structure of a Python library might seem confusing, but it's not magic. Python is _programmed_ to treat a folder full of Python code accompanied by an **__init__.py** file as a package, and it's programmed to look for available modules in its current directory _first_. This is why the statement **from mymodularity import timestamp** works: Python looks in the current directory for a folder called **mymodularity**, then looks for a **timestamp** file ending in **.py**.
+
+What you have done in this example is functionally the same as this less modular version:
+
+
+```
+#!/usr/bin/env python3
+
+import time
+from mymodularity import timestamp
+
+print("Testing Python sleep()...")
+
+# no modularity
+print("Time is " + str(time.time() ) )
+time.sleep(3)
+print("Time is " + str(time.time() ) )
+```
+
+For a simple example like this, there's not really a reason you wouldn't write your sleep test that way, but the best part about writing your own module is that your code is generic so you can reuse it for other projects.
+
+You can make the code more generic by passing information into the function when you call it. For instance, suppose you want to use your module to test not the _computer's_ sleep function, but a _user's_ sleep function. Change your **timestamp** code so it accepts an incoming variable called **msg**, which will be a string of text controlling how the **timestamp** is presented each time it is called:
+
+
+```
+#!/usr/bin/env python3
+
+import time
+
+# updated code
+def Timer(msg):
+ print(str(msg) + str(time.time() ) )
+```
+
+Now your function is more abstract than before. It still prints a timestamp, but what it prints for the user is undefined. That means you need to define it when calling the function.
+
+The **msg** parameter your **Timer** function accepts is arbitrarily named. You could call the parameter **m** or **message** or **text** or anything that makes sense to you. The important thing is that when the **timestamp.Timer** function is called, it accepts some text as its input, places whatever it receives into a variable, and uses the variable to accomplish its task.
+
+Here's a new application to test the user's ability to sense the passage of time correctly:
+
+
+```
+#!/usr/bin/env python3
+
+from mymodularity import timestamp
+
+print("Press the RETURN key. Count to 3, and press RETURN again.")
+
+input()
+timestamp.Timer("Started timer at ")
+
+print("Count to 3...")
+
+input()
+timestamp.Timer("You slept until ")
+```
+
+Save your new application as **response.py** and run it:
+
+
+```
+$ python3 ./response.py
+Press the RETURN key. Count to 3, and press RETURN again.
+
+Started timer at 1560714482.3772075
+Count to 3...
+
+You slept until 1560714484.1628013
+```
+
+### Functions and required parameters
+
+The new version of your timestamp module now _requires_ a **msg** parameter. That's significant because your first application is broken because it doesn't pass a string to the **timestamp.Timer** function:
+
+
+```
+$ python3 ./sleeptest.py
+Testing Python sleep()...
+Traceback (most recent call last):
+ File "./sleeptest.py", line 8, in <module>
+ timestamp.Timer()
+TypeError: Timer() missing 1 required positional argument: 'msg'
+```
+
+Can you fix your **sleeptest.py** application so it runs correctly with the updated version of your module?
+
+### Variables and functions
+
+By design, functions limit the scope of variables. In other words, if a variable is created within a function, that variable is available to _only_ that function. If you try to use a variable that appears in a function outside the function, an error occurs.
+
+Here's a modification of the **response.py** application, with an attempt to print the **msg** variable from the **timestamp.Timer()** function:
+
+
+```
+#!/usr/bin/env python3
+
+from mymodularity import timestamp
+
+print("Press the RETURN key. Count to 3, and press RETURN again.")
+
+input()
+timestamp.Timer("Started timer at ")
+
+print("Count to 3...")
+
+input()
+timestamp.Timer("You slept for ")
+
+print(msg)
+```
+
+Try running it to see the error:
+
+
+```
+$ python3 ./response.py
+Press the RETURN key. Count to 3, and press RETURN again.
+
+Started timer at 1560719527.7862902
+Count to 3...
+
+You slept for 1560719528.135406
+Traceback (most recent call last):
+ File "./response.py", line 15, in <module>
+ print(msg)
+NameError: name 'msg' is not defined
+```
+
+The application returns a **NameError** message because **msg** is not defined. This might seem confusing because you wrote code that defined **msg**, but you have greater insight into your code than Python does. Code that calls a function, whether the function appears within the same file or if it's packaged up as a module, doesn't know what happens inside the function. A function independently performs its calculations and returns what it has been programmed to return. Any variables involved are _local_ only: they exist only within the function and only as long as it takes the function to accomplish its purpose.
+
+#### Return statements
+
+If your application needs information contained only in a function, use a **return** statement to have the function provide meaningful data after it runs.
+
+They say time is money, so modify your timestamp function to allow for an imaginary charging system:
+
+
+```
+#!/usr/bin/env python3
+
+import time
+
+def Timer(msg):
+ print(str(msg) + str(time.time() ) )
+ charge = .02
+ return charge
+```
+
+The **timestamp** module now charges two cents for each call, but most importantly, it returns the amount charged each time it is called.
+
+Here's a demonstration of how a return statement can be used:
+
+
+```
+#!/usr/bin/env python3
+
+from mymodularity import timestamp
+
+print("Press RETURN for the time (costs 2 cents).")
+print("Press Q RETURN to quit.")
+
+total = 0
+
+while True:
+ kbd = input()
+ if kbd.lower() == "q":
+ print("You owe $" + str(total) )
+ exit()
+ else:
+ charge = timestamp.Timer("Time is ")
+ total = total+charge
+```
+
+In this sample code, the variable **charge** is assigned as the endpoint for the **timestamp.Timer()** function, so it receives whatever the function returns. In this case, the function returns a number, so a new variable called **total** is used to keep track of how many changes have been made. When the application receives the signal to quit, it prints the total charges:
+
+
+```
+$ python3 ./charge.py
+Press RETURN for the time (costs 2 cents).
+Press Q RETURN to quit.
+
+Time is 1560722430.345412
+
+Time is 1560722430.933996
+
+Time is 1560722434.6027434
+
+Time is 1560722438.612629
+
+Time is 1560722439.3649364
+q
+You owe $0.1
+```
+
+#### Inline functions
+
+Functions don't have to be created in separate files. If you're just writing a short script specific to one task, it may make more sense to just write your functions in the same file. The only difference is that you don't have to import your own module, but otherwise the function works the same way. Here's the latest iteration of the time test application as one file:
+
+
+```
+#!/usr/bin/env python3
+
+import time
+
+total = 0
+
+def Timer(msg):
+ print(str(msg) + str(time.time() ) )
+ charge = .02
+ return charge
+
+print("Press RETURN for the time (costs 2 cents).")
+print("Press Q RETURN to quit.")
+
+while True:
+ kbd = input()
+ if kbd.lower() == "q":
+ print("You owe $" + str(total) )
+ exit()
+ else:
+ charge = Timer("Time is ")
+ total = total+charge
+```
+
+It has no external dependencies (the **time** module is included in the Python distribution), and produces the same results as the modular version. The advantage is that everything is located in one file, and the disadvantage is that you cannot use the **Timer()** function in some other script you are writing unless you copy and paste it manually.
+
+#### Global variables
+
+A variable created outside a function has nothing limiting its scope, so it is considered a _global_ variable.
+
+An example of a global variable is the **total** variable in the **charge.py** example used to track current charges. The running total is created outside any function, so it is bound to the application rather than to a specific function.
+
+A function within the application has access to your global variable, but to get the variable into your imported module, you must send it there the same way you send your **msg** variable.
+
+Global variables are convenient because they seem to be available whenever and wherever you need them, but it can be difficult to keep track of their scope and to know which ones are still hanging around in system memory long after they're no longer needed (although Python generally has very good garbage collection).
+
+Global variables are important, though, because not all variables can be local to a function or class. That's easy now that you know how to send variables to functions and get values back.
+
+### Wrapping up functions
+
+You've learned a lot about functions, so start putting them into your scripts—if not as separate modules, then as blocks of code you don't have to write multiple times within one script. In the next article in this series, I'll get into Python classes.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/7/get-modular-python-functions
+
+作者:[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/users/xd-deng/users/nhuntwalker/users/don-watkins
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/openstack_python_vim_1.jpg?itok=lHQK5zpm (OpenStack source code (Python) in VIM)
+[2]: https://www.python.org/
+[3]: https://opensource.com/article/17/10/python-101
diff --git a/sources/tech/20190701 How to use to infrastructure as code.md b/sources/tech/20190701 How to use to infrastructure as code.md
new file mode 100644
index 0000000000..8b8d931d0f
--- /dev/null
+++ b/sources/tech/20190701 How to use to infrastructure as code.md
@@ -0,0 +1,373 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (How to use to infrastructure as code)
+[#]: via: (https://opensource.com/article/19/7/infrastructure-code)
+[#]: author: (Michael Zamot https://opensource.com/users/mzamot)
+
+How to use to infrastructure as code
+======
+As your servers and applications grow, it becomes harder to maintain and
+keep track of them if you don't treat your infrastructure as code.
+![Magnifying glass on code][1]
+
+My previous article about [setting up a homelab][2] described many options for building a personal lab to learn new technology. Regardless of whichever solution you choose, as your servers and applications grow, it will become harder and harder to maintain and keep track of them if you don't establish control. To avoid this, it's essential to treat your infrastructure as code.
+
+This article is about infrastructure as code (IaC) best practices and includes a sample project automating the deployment of two virtual machines (VMs) and installing [Keepalived][3] and [Nginx][4] while implementing these practices. You can find all the [code for this project][5] on GitHub.
+
+### Why is IaC important? Aren't my scripts enough?
+
+No, scripts are not enough. Over time, scripts become hard to maintain and hard to keep track of. IaC can help you maintain uniformity and scalability while saving lots of time that you would waste if you did every task manually.
+
+One of the problems with the culture of managing servers manually or partially automated is the lack of consistency and control, which (more often than not) causes configuration drifts and undocumented changes to applications or servers. If a server or a virtual machine has to be replaced, it's time-consuming to manually install every piece of software and do every bit of configuration.
+
+With IaC, hundreds of servers can be provisioned, deployed, and configured, usually from a centralized location, and every configuration can be tracked in a version-control system. If a configuration file has to be modified, instead of connecting to every server, the file can be altered locally and the code pushed to the version-control system. The same is true with scaling up or replacing damaged servers. The entire infrastructure is managed centrally, all the code is kept in a version-control repository like Git, and any changes required by the servers are done using this code alone. No more unique unicorns! (Sorry, unicorns!)
+
+One of IaC's main benefits is its integration with [CI/CD][6] tools like [Jenkins][7], which allows you to test more often and create deployment pipelines that automate moving versions of applications from one environment to the next.
+
+### So, how do you start?
+
+Start by doing an inventory of every application, service, and configuration needed by a server; review every piece of software installed, collect the configuration files, verify their parameters, and find where you can replicate the server.
+
+When you have identified everything you need, remember:
+
+ * Use version control; everything should be tracked using version control.
+ * Code everything; nothing should be done manually. Use code to describe the desired state.
+ * Idempotence. Every result from the code you write should always yield the same result, no matter how many times it is executed.
+ * Make your code modular.
+ * Test, test, test
+ * Again: Use version control. Don't _ever_ forget this.
+
+
+
+#### Prerequisites
+
+You need two virtual machines with CentOS 7 installed. SSH login with keys should be working.
+
+Create a directory called **homelab**. This will be your work directory, and this tutorial will refer to it as **$PWD**. Create two other directories inside this directory: **roles** and **group_vars**:
+
+
+```
+$ mkdir -p homelab/{roles,group_vars}
+$ cd homelab
+```
+
+#### Version control
+
+The first best practice is to always keep track of everything: automation, configuration files, templates. Version-control systems like Git make it easy for users to collaborate by providing a centralized repository where all the code, configurations, templates, etc. can be found. It also lets users review or restore older versions of files.
+
+If you don't have one, create an account in GitHub or GitLab (or use any other version-control provider of your choice).
+
+Inside **$PWD**, initialize your Git repo:
+
+
+```
+$ echo "# IaC example" >> README.md
+$ git init
+$ git add README.md
+$ git commit -m "First commit"
+$ git remote add origin <your Git URL>
+$ git push -u origin master
+```
+
+#### Code everything
+
+The main idea of IaC is to manage—as much as possible—all your infrastructure with code. Any change required in a server, application, or configuration must be defined in the code. Configuration files can be converted into templates to enable greater flexibility and reusability. Settings specific to applications or servers must also be coded, usually in variable files.
+
+When creating the automation, it is crucial to remember idempotence: No matter how many times the code is executed, it should always have the same result. Same input, same result. For example, when writing a piece of code that modifies a file, you must ensure that if the same code is executed again, the file will look the same.
+
+The following steps are automated, and the code is idempotent.
+
+### Modularity
+
+When writing infrastructure as code, it is imperative to think about reusability. Most of the code you write should be reusable and scalable.
+
+When writing [Ansible][8] roles, the best approach is to follow the Unix philosophy: "Write programs that do one thing and do it well." Therefore, create multiple roles, one for each piece of software: 1) a "base" or "common" role that prepares each VM regardless of its purpose; 2) a role to install and configure Keepalived (for high availability); 3) a role to install and configure Nginx (web server). This method allows each role to be reused for different kinds of servers and will save a lot of coding in the future.
+
+#### Create the base role
+
+This role will prepare the VM with all the steps it needs after it is provisioned. Think about any configurations or software each server needs; they should go in this module. In this example, the base role will:
+
+ * Change the hostname
+ * Install security updates
+ * Enable [EPEL][9] and install utilities
+ * Customize the welcome message
+
+
+
+Create the basic role skeleton inside **$PWD/roles**:
+
+
+```
+`$ ansible-galaxy init --offline base`
+```
+
+The main file for the role is **$PWD/roles/base/tasks/main.yml**. Modify it with the following content:
+
+
+```
+\---
+# We set the hostname to the value in the inventory
+\- name: Change hostname
+ hostname:
+ name: "{{ inventory_hostname }}"
+
+\- name: Update the system
+ yum:
+ name: "*"
+ state: latest
+
+\- name: Install basic utilities
+ yum:
+ name: ['epel-release', 'tmux', 'vim', 'wget', 'nfs-utils']
+ state: present
+
+\- name: Copy motd
+ template:
+ src: motd.j2
+ dest: /etc/motd
+```
+
+Create the template file that will replace **/etc/motd** by creating the file **$PWD/roles/base/templates/motd.j2**
+
+
+```
+UNAUTHORIZED ACCESS TO THIS DEVICE IS PROHIBITED
+
+You must have explicit, authorized permission to access or configure "{{ inventory_hostname }}". Unauthorized attempts and actions to access or use this system may result in civil and/or criminal penalties. All activities performed on this device are logged and monitored.
+```
+
+Every task in this code is idempotent. No matter how many times the code is executed, it will always yield exactly the same result. Notice how **/etc/motd** is modified; if the file were modified by adding or appending content (instead of using a template), it would have failed the idempotence rule, because a new line would be added every time it was executed.
+
+#### Create the Keepalived role
+
+You could create a role that includes both **Keepalived** and **Nginx**. But what would happen if you ever needed to install Keepalived without a web server? The code would have to be duplicated, wasting time, effort, and simplicity. Keeping roles minimal and straightforward is the way to go.
+
+The automation code should always handle configuration files so they can be tracked in your version-control system. But how do you handle configuration files when settings can have different values per host? Use templates! Templates allow you to use variables and facts, giving you flexibility with the benefits of uniformity.
+
+Create the Keepalived role skeleton within **$PWD/roles**:
+
+
+```
+`$ ansible-galaxy init --offline keepalived`
+```
+
+Modify the main task file **$PWD/roles/keepalived/tasks/main.yml** as follows:
+
+
+```
+\---
+\- name: Install keepalived
+ yum:
+ name: "keepalived"
+ state: latest
+
+\- name: Configure keepalived with the right settings
+ template:
+ src: keepalived.j2
+ dest: /etc/keepalived/keepalived.conf
+ notify: restart keepalived
+```
+
+**$PWD/roles/keepalived/handlers/main.yml**:
+
+
+```
+\---
+# handlers file for keepalived
+\- name: restart keepalived
+ service:
+ name: keepalived
+ enabled: yes
+ state: restarted
+```
+
+And create the configuration template file **$PWD/roles/keepalived/templates/keepalived.j2**:
+
+
+```
+#### File handled by Ansible.
+
+vrrp_script chk_nginx {
+ script "pidof nginx" # check the nginx process
+ interval 2 # every 2 seconds
+ weight 2 # add 2 points if OK
+}
+
+vrrp_instance LAB {
+ interface {{ keepalived_nic }} # interface to monitor
+ state {{ keepalived_state }}
+ virtual_router_id {{ keepalived_vri }}
+ priority {{ keepalived_priority }}
+ virtual_ipaddress {
+ {{ keepalived_vip }}
+ }
+ track_script {
+ chk_nginx
+ }
+}
+```
+
+The Keepalived configuration file was converted into a template. It is a typical Keepalived configuration file, but instead of hardcoding values, it is parameterized.
+
+When automating infrastructure and configuration files, it's vital to analyze application configuration files carefully, noting which values are the same across the environments and which settings are unique to each server. Again, every time the template is processed, it should yield the same result. Create variables, use Ansible facts; this adds up to modularity and flexibility.
+
+#### Create the Nginx role
+
+This simple role will install and configure Nginx using a template, following the same principles discussed above. A template will be used for this role to generate an **index.html** with the host's internet protocol (IP). [Other facts][10] can be used, too.
+
+Modify the main task file **$PWD/roles/nginx/tasks/main.yml** as follows:
+
+
+```
+\---
+# tasks file for nginx
+\- name: Install nginx
+ yum:
+ name: 'nginx'
+ state: 'latest'
+ notify: start nginx
+
+\- name: Create web directory
+ file:
+ path: /var/www
+ state: directory
+ mode: '0755'
+
+\- name: Create index.html
+ template:
+ src: index.html.j2
+ dest: /var/www/index.html
+
+\- name: Configure nginx
+ template:
+ src: lb.conf.j2
+ dest: /etc/nginx/conf.d/lb.conf
+ notify: restart nginx
+```
+
+Modify the main task file **$PWD/roles/nginx/handlers/main.yml** as follows:
+
+
+```
+\---
+\- name: start nginx
+ systemd:
+ name: 'nginx'
+ state: 'started'
+ enabled: yes
+
+\- name: restart nginx
+ systemd:
+ name: 'nginx'
+ state: 'restarted'
+```
+
+And create the following two configuration template files:
+
+**$PWD/roles/nginx/templates/site.conf.j2:**
+
+
+```
+server {
+ listen {{ keepalived_vip }}:80;
+ root /var/www;
+ location / {
+ }
+}
+```
+
+**$PWD/roles/nginx/templates/index.html.j2**:
+
+
+```
+`Hello, my ip is {{ ansible_default_ipv4.address }}`
+```
+
+### Put it all together
+
+You've created several roles; they are ready to be used, so create a playbook to use them.
+
+Create a file called **$PWD/main.yml**:
+
+
+```
+\---
+\- hosts: webservers
+ become: yes
+ roles:
+ - base
+ - nginx
+ - keepalived
+```
+
+This file defines what roles go where. If more roles are available, they can be included to create different combinations as needed. Some servers can be web servers only, for example. This flexibility is one of the main reasons it's so essential to write minimal functional units.
+
+The previous roles require variables to work. Ansible is really flexible and lets you define variable files. This example creates a file called **all inside group_vars** (**$PWD/group_vars/all**). If more flexibility is needed, variables can be defined per host inside a folder called **host_vars**:
+
+
+```
+\---
+keepalived_nic: eth0
+keepalived_vri: 51
+keepalived_vip: 192.168.2.180
+```
+
+Configure **keepalived_nic** with your preferred Keepalived interface, usually **eth0**. The variable **keepalived_vip** should have the IP needed to use as a virtual IP.
+
+And finally, define the inventory. This inventory should keep track of your entire infrastructure. It's best to use dynamic inventories that gather all the information directly from the hypervisor so it doesn't have to be updated manually. Create a file called **inventory** with a section called **webservers** containing information about the two VMs:
+
+
+```
+[webservers]
+webserver01 ansible_user=centos ansible_host=192.168.2.101 keepalived_state=MASTER keepalived_priority=101
+webserver02 ansible_user=centos ansible_host=192.168.2.102 keepalived_state=BACKUP keepalived_priority=100
+```
+
+The variable **ansible_user** should have the user Ansible will use to connect to the server. The variable **keepalived_state** should indicate if the host will be configured as a Master or Backup (as required in the Keepalived template file). Finally, set the variable **keepalived_priority** here because the master should have a higher priority than the backup.
+
+And that's it; you've automated configuration of two VMs, installing Keepalived and Nginx.
+
+Now save your changes:
+
+
+```
+$ git add .
+$ git commit -m "IaC playbook"
+$ git push -u origin master
+```
+
+and deploy:
+
+
+```
+`$ ansible-playbook -i inventory main.yml`
+```
+
+This project investigated basic IaC concepts, but it doesn't end here. Learn more by exploring how to do automated server provisioning, unit testing, and integration with CI/CD tools and pipelines. It's a long process, but it's worth it, both technically and career-wise.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/7/infrastructure-code
+
+作者:[Michael Zamot][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/mzamot
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/find-file-linux-code_magnifying_glass_zero.png?itok=E2HoPDg0 (Magnifying glass on code)
+[2]: https://opensource.com/article/19/3/home-lab
+[3]: https://www.keepalived.org/
+[4]: https://www.nginx.com/
+[5]: https://github.com/mzamot/os-homelab-example
+[6]: https://en.wikipedia.org/wiki/CI/CD
+[7]: https://jenkins.io/
+[8]: https://www.ansible.com/
+[9]: https://fedoraproject.org/wiki/EPEL
+[10]: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variables-discovered-from-systems-facts
diff --git a/sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md b/sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md
new file mode 100644
index 0000000000..bf076d08ea
--- /dev/null
+++ b/sources/tech/20190701 Learn how to Record and Replay Linux Terminal Sessions Activity.md
@@ -0,0 +1,292 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Learn how to Record and Replay Linux Terminal Sessions Activity)
+[#]: via: (https://www.linuxtechi.com/record-replay-linux-terminal-sessions-activity/)
+[#]: author: (Pradeep Kumar https://www.linuxtechi.com/author/pradeep/)
+
+Learn how to Record and Replay Linux Terminal Sessions Activity
+======
+
+Generally, all Linux administrators use **history** command to track which commands were executed in previous sessions, but there is one limitation of history command is that it doesn’t store the command’s output. There can be some scenarios where we want to check commands output of previous session and want to compare it with current session. Apart from this, there are some situations where we are troubleshooting the issues on Linux production boxes and want to save all terminal session activities for future reference, so in such cases script command become handy.
+
+
+
+Script is a command line tool which is used to capture or record your Linux server terminal sessions activity and later the recorded session can be replayed using scriptreplay command. In this article we will demonstrate how to install script command line tool and how to record Linux server terminal session activity and then later we will see how the recorded session can be replayed using **scriptreplay** command.
+
+### Installation of Script tool on RHEL 7/ CentOS 7
+
+Script command is provided by the rpm package “**util-linux**”, in case it is not installed on your CentOS 7 / RHEL 7 system , run the following yum command,
+
+```
+[root@linuxtechi ~]# yum install util-linux -y
+```
+
+**On RHEL 8 / CentOS 8**
+
+Run the following dnf command to install script utility on RHEL 8 and CentOS 8 system,
+
+```
+[root@linuxtechi ~]# dnf install util-linux -y
+```
+
+**Installation of Script tool on Debian based systems (Ubuntu / Linux Mint)**
+
+Execute the beneath apt-get command to install script utility
+
+```
+root@linuxtechi ~]# apt-get install util-linux -y
+```
+
+### How to Use script utility
+
+Use of script command is straight forward, type script command on terminal then hit enter, it will start capturing your current terminal session activities inside a file called “**typescript**”
+
+```
+[root@linuxtechi ~]# script
+Script started, file is typescript
+[root@linuxtechi ~]#
+```
+
+To stop recording the session activities, type exit command and hit enter.
+
+```
+[root@linuxtechi ~]# exit
+exit
+Script done, file is typescript
+[root@linuxtechi ~]#
+```
+
+Syntax of Script command:
+
+```
+~ ] # script {options} {file_name}
+```
+
+Different options used in script command,
+
+![options-script-command][1]
+
+Let’s start recording of your Linux terminal session by executing script command and then execute couple of command like ‘**w**’, ‘**route -n**’ , ‘[**df -h**][2]’ and ‘**free-h**’, example is shown below
+
+![script-examples-linux-server][3]
+
+As we can see above, terminal session logs are saved in the file “typescript”
+
+Now view the contents of typescript file using [cat][4] / vi command,
+
+```
+[root@linuxtechi ~]# ls -l typescript
+-rw-r--r--. 1 root root 1861 Jun 21 00:50 typescript
+[root@linuxtechi ~]#
+```
+
+![typescript-file-content-linux][5]
+
+Above confirms that whatever commands we execute on terminal that have been saved inside the file “typescript”
+
+### Use Custom File name in script command
+
+Let’s assume we want to use our customize file name to script command, so specify the file name after script command, in the below example we are using a file name “session-log-(current-date-time).txt”
+
+```
+[root@linuxtechi ~]# script sessions-log-$(date +%d-%m-%Y-%T).txt
+Script started, file is sessions-log-21-06-2019-01:37:39.txt
+[root@linuxtechi ~]#
+```
+
+Now run the commands and then type exit,
+
+```
+[root@linuxtechi ~]# exit
+exit
+Script done, file is sessions-log-21-06-2019-01:37:39.txt
+[root@linuxtechi ~]#
+```
+
+### Append the commands output to script file
+
+Let assume script command had already recorded the commands output to a file called session-log.txt file and now we want to append output of new sessions commands output to this file, then use “**-a**” command in script command
+
+```
+[root@linuxtechi ~]# script -a sessions-log.txt
+Script started, file is sessions-log.txt
+[root@linuxtechi ~]# xfs_info /dev/mapper/centos-root
+meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2746624 blks
+ = sectsz=512 attr=2, projid32bit=1
+ = crc=1 finobt=0 spinodes=0
+data = bsize=4096 blocks=10986496, imaxpct=25
+ = sunit=0 swidth=0 blks
+naming =version 2 bsize=4096 ascii-ci=0 ftype=1
+log =internal bsize=4096 blocks=5364, version=2
+ = sectsz=512 sunit=0 blks, lazy-count=1
+realtime =none extsz=4096 blocks=0, rtextents=0
+[root@linuxtechi ~]# exit
+exit
+Script done, file is sessions-log.txt
+[root@linuxtechi ~]#
+```
+
+To view updated session’s logs, use “cat session-log.txt ”
+
+### Capture commands output to script file without interactive shell
+
+Let’s assume we want to capture commands output to a script file, then use **-c** option, example is shown below,
+
+```
+[root@linuxtechi ~]# script -c "uptime && hostname && date" root-session.txt
+Script started, file is root-session.txt
+ 01:57:40 up 2:30, 3 users, load average: 0.00, 0.01, 0.05
+linuxtechi
+Fri Jun 21 01:57:40 EDT 2019
+Script done, file is root-session.txt
+[root@linuxtechi ~]#
+```
+
+### Run script command in quiet mode
+
+To run script command in quiet mode use **-q** option, this option will suppress the script started and script done message, example is shown below,
+
+```
+[root@linuxtechi ~]# script -c "uptime && date" -q root-session.txt
+ 02:01:10 up 2:33, 3 users, load average: 0.00, 0.01, 0.05
+Fri Jun 21 02:01:10 EDT 2019
+[root@linuxtechi ~]#
+```
+
+Record Timing information to a file and capture commands output to a separate file, this can be achieved in script command by passing timing file (**–timing**) , example is shown below,
+
+Syntax:
+
+~ ]# script -t <timing-file-name> {file_name}
+
+```
+[root@linuxtechi ~]# script --timing=timing.txt session.log
+Script started, file is session.log
+[root@linuxtechi ~]# uptime
+ 02:27:59 up 3:00, 3 users, load average: 0.00, 0.01, 0.05
+[root@linuxtechi ~]# date
+Fri Jun 21 02:28:02 EDT 2019
+[root@linuxtechi ~]# free -h
+ total used free shared buff/cache available
+Mem: 3.9G 171M 2.0G 8.6M 1.7G 3.3G
+Swap: 3.9G 0B 3.9G
+[root@linuxtechi ~]# whoami
+root
+[root@linuxtechi ~]# exit
+exit
+Script done, file is session.log
+[root@linuxtechi ~]#
+[root@linuxtechi ~]# ls -l session.log timing.txt
+-rw-r--r--. 1 root root 673 Jun 21 02:28 session.log
+-rw-r--r--. 1 root root 414 Jun 21 02:28 timing.txt
+[root@linuxtechi ~]#
+```
+
+### Replay recorded Linux terminal session activity
+
+Now replay the recorded terminal session activities using scriptreplay command,
+
+**Note:** Scriptreplay is also provided by rpm package “**util-linux**”. Scriptreplay command requires timing file to work.
+
+```
+[root@linuxtechi ~]# scriptreplay --timing=timing.txt session.log
+```
+
+Output of above command would be something like below,
+
+
+
+### Record all User’s Linux terminal session activities
+
+There are some business critical Linux servers where we want keep track on all users activity, so this can be accomplished using script command, place the following content in /etc/profile file ,
+
+```
+[root@linuxtechi ~]# vi /etc/profile
+……………………………………………………
+if [ "x$SESSION_RECORD" = "x" ]
+then
+timestamp=$(date +%d-%m-%Y-%T)
+session_log=/var/log/session/session.$USER.$$.$timestamp
+SESSION_RECORD=started
+export SESSION_RECORD
+script -t -f -q 2>${session_log}.timing $session_log
+exit
+fi
+……………………………………………………
+```
+
+Save & exit the file.
+
+Create the session directory under /var/log folder,
+
+```
+[root@linuxtechi ~]# mkdir /var/log/session
+```
+
+Assign the permissions to session folder,
+
+```
+[root@linuxtechi ~]# chmod 777 /var/log/session/
+[root@linuxtechi ~]#
+```
+
+Now verify whether above code is working or not. Login to ordinary user to linux server, in my I am using pkumar user,
+
+```
+~ ] # ssh root@linuxtechi
+root@linuxtechi's password:
+[root@linuxtechi ~]$ uptime
+ 04:34:09 up 5:06, 3 users, load average: 0.00, 0.01, 0.05
+[root@linuxtechi ~]$ date
+Fri Jun 21 04:34:11 EDT 2019
+[root@linuxtechi ~]$ free -h
+ total used free shared buff/cache available
+Mem: 3.9G 172M 2.0G 8.6M 1.7G 3.3G
+Swap: 3.9G 0B 3.9G
+[root@linuxtechi ~]$ id
+uid=1001(pkumar) gid=1002(pkumar) groups=1002(pkumar) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
+[root@linuxtechi ~]$ whoami
+pkumar
+[root@linuxtechi ~]$ exit
+
+Login as root and view user’s linux terminal session activity
+
+[root@linuxtechi ~]# cd /var/log/session/
+[root@linuxtechi session]# ls -l | grep pkumar
+-rw-rw-r--. 1 pkumar pkumar 870 Jun 21 04:34 session.pkumar.19785.21-06-2019-04:34:05
+-rw-rw-r--. 1 pkumar pkumar 494 Jun 21 04:34 session.pkumar.19785.21-06-2019-04:34:05.timing
+[root@linuxtechi session]#
+```
+
+![Session-output-file-linux][6]
+
+We can also use scriptreplay command to replay user’s terminal session activities,
+
+```
+[root@linuxtechi session]# scriptreplay --timing session.pkumar.19785.21-06-2019-04\:34\:05.timing session.pkumar.19785.21-06-2019-04\:34\:05
+```
+
+That’s all from this tutorial, please do share your feedback and comments in the comments section below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.linuxtechi.com/record-replay-linux-terminal-sessions-activity/
+
+作者:[Pradeep Kumar][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://www.linuxtechi.com/author/pradeep/
+[b]: https://github.com/lujun9972
+[1]: https://www.linuxtechi.com/wp-content/uploads/2019/06/options-script-command.png
+[2]: https://www.linuxtechi.com/11-df-command-examples-in-linux/
+[3]: https://www.linuxtechi.com/wp-content/uploads/2019/06/script-examples-linux-server-1024x736.jpg
+[4]: https://www.linuxtechi.com/cat-command-examples-for-beginners-in-linux/
+[5]: https://www.linuxtechi.com/wp-content/uploads/2019/06/typescript-file-content-linux-1024x794.jpg
+[6]: https://www.linuxtechi.com/wp-content/uploads/2019/06/Session-output-file-linux-1024x353.jpg
diff --git a/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md
new file mode 100644
index 0000000000..e369693ea7
--- /dev/null
+++ b/sources/tech/20190701 Ubuntu or Fedora- Which One Should You Use and Why.md
@@ -0,0 +1,190 @@
+[#]: collector: (lujun9972)
+[#]: translator: (chen-ni)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Ubuntu or Fedora: Which One Should You Use and Why)
+[#]: via: (https://itsfoss.com/ubuntu-vs-fedora/)
+[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
+
+Ubuntu or Fedora: Which One Should You Use and Why
+======
+
+_**Brief: Ubuntu or Fedora? What’s the difference? Which is better? Which one should you use? Read this comparison of Ubuntu and Fedora.**_
+
+[Ubuntu][1] and [Fedora][2] are one of the most popular Linux distributions out there. Making a decision to choose between using Ubuntu and Fedora is not an easy one. I’ll try to help you in making your decision by comparing various features of Ubuntu and Fedora.
+
+Do note that this comparison is primarily from the desktop point of view. I am not going to focus on the container specific versions of Fedora or Ubuntu.
+
+### Ubuntu vs Fedora: Which one is better?
+
+![Ubuntu Vs Fedora][3]
+
+Almost all Linux distributions differ from one another primarily on these points:
+
+ * Base distribution (Debian, Red Hat, Arch or from scratch)
+ * Installation
+ * Supported desktop environments
+ * Package management, software support and updates
+ * Hardware support
+ * Development team (backed by corporate or created by hobbyists)
+ * Release cycle
+ * Community and support
+
+
+
+Let’s see how similar or how different are Ubuntu and Fedora from each other. Once you know that, it should be perhaps easier for you to make a choice.
+
+#### Installation
+
+Ubuntu’s Ubiquity installer is one of easiest installers out there. I believe that it played an important role in Ubuntu’s popularity because when Ubuntu was just created in 2004, installing Linux itself was considered a huge task.
+
+The Ubuntu installer allows you to install Ubuntu in around 10 minutes. In most cases, it can identify Windows installed on your system and allows you to dual boot Ubuntu and Windows in a matter of clicks.
+
+You can also install updates and third-party codecs while installing Ubuntu. That’s an added advantage.
+
+![Ubuntu Installer][4]
+
+Fedora uses Anaconda installer. This too simplifies the installation process with the easy to use interface.
+
+![Fedora Installer | Image Credit Fedora Magazine][5]
+
+Fedora also provides a media writer tool for downloading and creating the live USB of Fedora on Windows operating system. When I last tried to use it around two years ago, it didn’t work and I had to use the regular live USB creating software.
+
+In my experience, installing Ubuntu is easier than installing Fedora. That doesn’t mean installing Fedora is a complex process. Just that Ubuntu is simpler.
+
+#### Desktop environments
+
+Both Ubuntu and Fedora use GNOME desktop environment by default.
+
+![GNOME Desktop in Fedora][6]
+
+While Fedora uses the stock GNOME desktop, Ubuntu has customized it to look and behave like its previous Unity desktop.
+
+![GNOME desktop customized by Ubuntu][7]
+
+Apart from GNOME, both Ubuntu and Fedora offer several other desktop variants.
+
+Ubuntu has Kubuntu, Xubuntu, Lubuntu etc., offering various desktop flavors. While they are the official flavor of Ubuntu, they are not directly developed by Ubuntu team from Canonical. The teams are separate.
+
+Fedora offers various desktop choices in the form of [Fedora Spins][8]. Unlike Kubuntu, Lubuntu etc,. they are not created and maintained by separate team. They are from core Fedora team.
+
+#### Package management and software availability
+
+Ubuntu uses APT package manager to provide and manage software (applications, libraries and other required codes) while Fedora uses DNF package manager.
+
+[][9]
+
+Suggested read System76 Galago Pro: Specs, Price And Release Date
+
+[Ubuntu has vast software repositories][10] allowing you to easily install thousands of programs, both FOSS and non-FOSS, easily. Fedora on the other hand focuses on providing only open source software. This is changing in the new versions but Fedora’s repositories are still not as big as that of Ubuntu.
+
+Some third party software developer also provide click-to-install, .exe like packages for Linux. In Ubuntu, these packages are in .deb format and while Fedora supports .rpm packages.
+
+Most software vendors provide both DEB and RPM files for Linux users but I have experienced that sometimes software vendor only provide DEB file. For example, SEO tool [Screaming Frog][11] has only DEB packages. It’s extremely rare that a software is available in RPM but not in DEB format.
+
+#### Hardware support
+
+Linux in general has its fair share of trouble with some WiFi adapters and graphics cards. Both Ubuntu and Fedora are impacted from that. Take the example of Nvidia. It’s [open source Nouveau driver often results in troubles like system hanging at boot][12].
+
+Ubuntu provides an easy way of installing additional proprietary drivers. This results in better hardware support in many cases.
+
+![Installing proprietary driver is easier in Ubuntu][13]
+
+Fedora, on the other hand, sticks to open source software and thus installing proprietary drivers on Fedora becomes a difficult task.
+
+#### Support and userbase
+
+Both Ubuntu and Fedora provide support through community forums. Ubuntu has two main forums: [UbuntuForums][14] and [Ask Ubuntu][15]. Fedora has one main forum [Ask Fedora][16].
+
+In terms of userbase, Fedora has a large following. However, Ubuntu is more popular and has a larger following than Fedora.
+
+The popularity of Ubuntu has prompted a number of websites and blogs focused primarily on Ubuntu. This way, you get more troubleshooting tips and learning material on Ubuntu than Fedora.
+
+#### Release cycle
+
+A new Fedora version is released every six months and each Fedora release is supported for nine months only. Which means that between six to nine months, you must perform an upgrade. Upgrading Fedora version is simple but it does require a good internet connection. Not everyone can be happy with 1.5 GB of version upgrades every nine months.
+
+Ubuntu has two versions: regular release and the long term support (LTS) release. Regular release is similar to Fedora. It’s released at the interval of six months and is supported for nine months.
+
+The LTS release comes at an interval of two years and is supported for five years. Regular releases bring new features, new software versions while the LTS release holds on to the older versions. This makes it a great choice for people who don’t like frequent changes and prefer stability.
+
+#### Solid base distributions
+
+Ubuntu is based on [Debian][17]. Debian is one of the biggest community project and one of the most respected project in the [free software][18] world.
+
+Fedora is a community project from Red Hat. Red Hat is an enterprise focused Linux distribution. Fedora works as a ‘testing ground’ ([upstream][19] in technical term) for new features before those features are included in Red Hat Enterprise Linux.
+
+[][20]
+
+Suggested read How To Manage StartUp Applications In Ubuntu
+
+#### Backed by enterprises
+
+Both Ubuntu and Fedora are backed by their parent corporations. Ubuntu is from [Canonical][21] while Fedora is from [Red Hat][22] (now [part of IBM][23]). Enterprise backing is important because it ensures that the Linux distribution is well-maintained.
+
+Hobbyists distributions created by a group of individuals often crumble under workload. You might have seen reasonably popular distribution projects being shutdown for this sole reason. [Antergos][24], Korora are just some of the many such examples where distributions were discontinued because the developers couldn’t get enough free time to work on the project.
+
+The fact that both Ubuntu and Fedora are supported by a two Linux-based enterprises makes them a viable choice over other independent distributions.
+
+#### Ubuntu vs Fedora as server
+
+The comparison between Ubuntu and Fedora was primarily aimed at desktop users so far. But a discussion about Linux is not complete until you include servers.
+
+![Ubuntu Server][25]
+
+Ubuntu is not only popular on desktop, it also has a good presence on the server side. If you are familiar with Ubuntu as desktop, you might not feel uncomfortable with Ubuntu server edition. I started with Ubuntu desktop and now my websites are hosted on Linux servers running Ubuntu.
+
+Fedora too has server edition and some people use it as well. But most sysadmins won’t prefer a server that has to be upgraded and rebooted every nine months.
+
+Knowing Fedora helps you in using Red Hat Enterprise Linux (RHEL). RHEL is a paid product and you’ll have to purchase a subscription. If you want an operating system for running server that is close to Fedora/Red Hat, I advise using CentOS. [CentOS][26] is also a community project affiliated with Red Hat but this one is focused on servers.
+
+#### Conclusion
+
+As you can see, both Ubuntu and Fedora are similar to each other on several points. Ubuntu does take lead when it comes to software availability, driver installation and online support. And _**these are the points that make Ubuntu a better choice, specially for inexperienced Linux users.**_
+
+If you want to get familiar with Red Hat, Fedora is a good starting point. If you have some experience with Linux or if you want to use only open source software, Fedora is an excellent choice.
+
+In the end, it is really up to you to decide if you want to use Fedora or Ubuntu. I would suggest creating live USB of both distributions or try them out in virtual machine.
+
+What’s your opinion on Ubuntu vs Fedora? Which distribution do you prefer and why? Do share your views in the comment section.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/ubuntu-vs-fedora/
+
+作者:[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://ubuntu.com/
+[2]: https://getfedora.org/
+[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-vs-fedora.png?resize=800%2C450&ssl=1
+[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2018/03/install-linux-inside-windows-10.jpg?resize=800%2C479&ssl=1
+[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/07/fedora-installer.png?resize=800%2C598&ssl=1
+[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/gnome-desktop-fedora.png?resize=800%2C450&ssl=1
+[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/03/applications_menu.jpg?resize=800%2C450&ssl=1
+[8]: https://spins.fedoraproject.org/
+[9]: https://itsfoss.com/system-76-galago-pro/
+[10]: https://itsfoss.com/ubuntu-repositories/
+[11]: https://www.screamingfrog.co.uk/seo-spider/#download
+[12]: https://itsfoss.com/fix-ubuntu-freezing/
+[13]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/02/software_updates_additional_drivers_nvidia.png?resize=800%2C523&ssl=1
+[14]: https://ubuntuforums.org/
+[15]: https://askubuntu.com/
+[16]: https://ask.fedoraproject.org/
+[17]: https://www.debian.org/
+[18]: https://www.fsf.org/
+[19]: https://en.wikipedia.org/wiki/Upstream_(software_development)
+[20]: https://itsfoss.com/manage-startup-applications-ubuntu/
+[21]: https://canonical.com/
+[22]: https://www.redhat.com/en
+[23]: https://itsfoss.com/ibm-red-hat-acquisition/
+[24]: https://itsfoss.com/antergos-linux-discontinued/
+[25]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/07/ubuntu-server.png?resize=800%2C232&ssl=1
+[26]: https://centos.org/
diff --git a/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md b/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md
new file mode 100644
index 0000000000..7c04b906fc
--- /dev/null
+++ b/translated/news/20190612 BitTorrent Client Deluge 2.0 Released- Here-s What-s New.md
@@ -0,0 +1,83 @@
+[#]: collector: (lujun9972)
+[#]: translator: (geekpi)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (BitTorrent Client Deluge 2.0 Released: Here’s What’s New)
+[#]: via: (https://itsfoss.com/deluge-2-release/)
+[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
+
+BitTorrent 客户端 Deluge 2.0 发布:新功能介绍
+======
+
+你可能已经知道 [Deluge][1] 是[最适合 Linux 用户的 Torrent 客户端][2]之一。然而,最近的稳定版本差不多是两年前的了。
+
+尽管它在积极开发中,但直到最近才出了一个主要的稳定版本。我们写这篇文章时,最新版本恰好是 2.0.2。所以,如果你还没有下载最新的稳定版本,请尝试一下。
+
+不管如何,如果你好奇的话,让我们谈下有哪些新的功能。
+
+![Deluge][3]
+
+### Deluge 2.0 的主要改进
+
+新版本引入了多用户支持,这是一个非常需要的功能。
+
+除此之外,还有一些性能改进可以更快地加载更多的种子。
+
+此外,在 2.0 版本中,Deluge 使用了 Python 3,对 Python 2.7 提供最低支持。即使是用户界面,他们也从 GTK UI 迁移到了 GTK3。
+
+根据发行说明,还有一些更重要的补充/改进,包括:
+
+ * 多用户支持。
+ * 性能提升,可以更快地加载数千个种子。
+ * 一个模拟 GTK/Web UI 的新控制台 UI。
+ * GTK UI 迁移到 GTK3,并伴随 UI 改进和补充。
+ * 磁链预获取功能以便在添加种子时选择文件。
+ * 完全支持 libtorrent 1.2。
+ * 语言切换支持。
+ * 改进了在 ReadTheDocs 托管的文档。
+ * AutoAdd 插件取代了内置功能。
+
+
+
+### 如何安装或升级到 Deluge 2.0
+
+![][4]
+
+对于任何 Linux 发行版,你都应该遵循官方[安装指南][5](使用 PPA 或 PyPi)。但是,如果你要升级,你应该留意发行说明中提到的:
+
+“_Deluge 2.0与 Deluge 1.x 客户端或守护进程不兼容,因此这些也需要升级。如果第三方脚本直接连接到 Deluge 客户端,那么可能也不兼容且需要迁移。_”
+
+因此,坚持在升级主版本之前备份你的[配置][6]以免数据丢失。
+
+而且,如果你是插件作者,那么需要升级它以使其与新版本兼容。
+
+直接下载的安装包尚不包含 Windows 和 Mac OS。但是,说明中提到他们正在进行中。
+
+除此之外,你可以按照更新后的官方文档中的[安装指南][5]来手动安装它们。
+
+**总结**
+
+你如何看待最新的稳定版本?你是否将 Deluge 用作 BitTorrent 客户端?或者你是否找到了其他更好的选择?
+
+请在下面的评论栏告诉我们你的想法。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/deluge-2-release/
+
+作者:[Ankush Das][a]
+选题:[lujun9972][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/ankush/
+[b]: https://github.com/lujun9972
+[1]: https://dev.deluge-torrent.org/
+[2]: https://itsfoss.com/best-torrent-ubuntu/
+[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/deluge.jpg?fit=800%2C410&ssl=1
+[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/06/Deluge-2-release.png?resize=800%2C450&ssl=1
+[5]: https://deluge.readthedocs.io/en/latest/intro/01-install.html
+[6]: https://dev.deluge-torrent.org/wiki/Faq#WheredoesDelugestoreitssettingsconfig
diff --git a/translated/talk/20190604 5G will augment Wi-Fi, not replace it.md b/translated/talk/20190604 5G will augment Wi-Fi, not replace it.md
new file mode 100644
index 0000000000..1daab85194
--- /dev/null
+++ b/translated/talk/20190604 5G will augment Wi-Fi, not replace it.md
@@ -0,0 +1,103 @@
+[#]: collector: (lujun9972)
+[#]: translator: (GraveAccent)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (5G will augment Wi-Fi, not replace it)
+[#]: via: (https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html)
+[#]: author: (Zeus Kerravala https://www.networkworld.com/author/Zeus-Kerravala/)
+
+
+5G 会增强 Wi-Fi,而不是取代它
+======
+Aruba 战略和企业发展副总裁 Jeff Lipton 为 5G 炒作增添了一些干货,讨论了它和 Wi-Fi 如何协同工作以及如何最大化两者的价值。
+![Thinkstock][1]
+
+可以说没有技术主题比 [5G][2] 更热。 这是最近 [移动世界大会][3] 节目的一个主题,并且已经在其他活动中占据了主导地位,例如 Enterprise Connect 和我参加的几乎所有供应商活动。
+
+一些供应商将 5G 定位为解决所有网络问题的灵丹妙药,并预测它将消除所有其他形式的网络。 像这样的观点显然是极端的,但我相信 5G 会对网络行业产生影响,网络工程师应该意识到这一点。
+
+为了帮助为5G炒作带来一些现实感,我最近采访了一家惠普公司 Aruba 的战略和企业发展副总裁 Jeff Lipton,因为我知道惠普已经深入参与了 5G 和 Wi-Fi 的发展。
+
+**[ 另见:[5G 时代几乎已经来了][3] ]**
+
+### Zeus Kerravala: 5G 被吹捧为“下一件大事”。你是这样看的吗?
+
+**Jeff Lipton:** 接下来的重点是连接“事物”并从这些事物中产生可操作的见解和背景。5G 是服务于这一趋势的技术之一。Wi-Fi 6 是另一个,还有边缘计算,蓝牙低功耗(BLE),人工智能(AI)和机器学习(ML)。这一切都很重要,全都有自己的用武之地。
+
+### 你是否在企业中看到 5G 的风头盖过 Wi-Fi?
+
+![Jeff Lipton, VP of strategy and corporate development, Aruba][4]
+
+**Lipton:** 与所有蜂窝接入一样,如果你需要宏观区域覆盖和高速切换,使用 5G 是合适的。但对于大多数企业级应用程序而言,它通常不需要这些功能。从性能角度来看,[Wi-Fi 6][5] 和 5G 在大多数指标上大致相等,包括吞吐量,延迟,可靠性和连接密度。它们并不相似的地方在经济方面,Wi-Fi要好得多。我不认为很多客户愿意用 Wi-Fi 交换 5G,除非他们需要宏观覆盖或高速切换。
+
+### Wi-Fi 和 5G 可以共存吗? 企业如何一起使用 5G 和 Wi-Fi?
+
+**Lipton:** Wi-Fi 和 5G 可以并且应该是互补的。 5G 架构将蜂窝核心和无线接入网络(RAN)分离。 因此,Wi-Fi 可以是企业无线电前端,并与 5G 核心紧密连接。 由于 Wi-Fi 的经济性 - 特别是 Wi-Fi 6 - 是有利的并且性能非常好,我们设想许多服务提供商在有可行的地方使用 Wi-Fi 作为其 5G 系统的无线电前端,充当分布式天线(DAS)和小型蜂窝系统的替代。
+
+“Wi-Fi 和 5G 可以并且应该是互补的。” — Jeff Lipton
+
+### 如果一个企业打算完全转向 5G,那将如何实现以及它的实用性如何?
+
+**Lipton:** 为了将 5G 用于主要的室内访问,客户需要升级其网络和几乎所有设备。 5G 在室外提供良好的覆盖,但蜂窝信号不能可靠地穿透建筑物。 5G 会使这个问题变得更糟,因为它部分依赖于更高频率的无线电。因此,服务提供商需要一种提供室内覆盖的方法。为了提供这种覆盖,他们会部署 DAS 或小型蜂窝系统 - 由终端客户支付。然后,客户将他们的设备直连到这些蜂窝系统,并为每个设备支付服务合同。
+
+**[[上 PluralSight 学习移动设备管理课程,了解如何在不降低用户体验的情况下保护公司中的设备。][6]]**
+
+这种方法存在一些问题。首先,DAS 和小型蜂窝系统比 Wi-Fi 网络贵得多。 并且成本不会因网络而停止。 每台设备都需要一台 5G 蜂窝调制解调器,批发价格高达数十美元,而终端用户通常需要花费一百多美元。 由于目前很少或者没有 MacBook、PC、打印机、AppleTV 有 5G 调制解调器,因此需要对这些设备进行升级。我不相信很多企业会愿意支付这笔额外费用并升级他们的大部分设备以获得不明确的好处。
+
+### 经济是 5G 与 Wi-Fi 之争的一个要素吗?
+
+**Lipton:** 经济始终是一个要素。让我们将对话集中在室内企业级应用程序上,因为这是一些运营商打算用 5G 定位的用例。 我们已经提到升级到 5G 将要求企业部署昂贵的 DAS 或小型蜂窝系统用于室内覆盖,几乎将所有设备升级到包含 5G 调制解调器,并为每个设备支付服务合同。理解 5G 蜂窝网络和 DAS 系统在许可频谱上运行也很重要,这类似于私人高速公路。 服务提供商为此频谱支付了数十亿美元,这笔费用需要货币化并嵌入服务成本中。 因此,从部署和生命周期的角度来看,Wi-Fi 在经济上比 5G 有利。
+
+### 5G 与 Wi-Fi 有任何安全隐患吗?
+
+**Lipton:** 一些人认为蜂窝技术比Wi-Fi更安全,但事实并非如此。LTE 相对安全,但也有弱点。例如,普渡大学和爱荷华大学的研究人员表示,LTE 容易受到一系列攻击,包括数据拦截和设备跟踪。5G 通过多种认证方法和更好的密钥管理改进了 LTE 安全性。
+
+Wi-Fi 的安全性也没有停滞不前而是继续发展。当然,不遵循最佳实践的 Wi-Fi 实现,例如那些甚至没有基本密码保护的实现,并不是最佳的。但那些配置了适当的访问控制和密码的人是非常安全的。 随着新标准 - 特别是 WPA3 和增强开放(Enhanced Open) - Wi-Fi网络安全性进一步提高。
+
+同样重要的是要记住,企业已根据其特定需求对安全性和合规性解决方案进行了大量投资。对于包括 5G 在内的蜂窝网络,企业将失去部署所选安全性和合规性解决方案的能力,以及对流量流的大多数可见性。 虽然 5G 的未来版本将通过称为网络切片的功能提供高级别的自定义,但企业仍将失去他们目前需要和拥有的安全性和合规性定制级别。
+
+### 关于 5G 与 Wi-Fi 之间的讨论有什么最后的想法?
+
+**Lipton:** 围绕 Wi-Fi 与 5G 的争论忽略了这一点。它们都有自己的用武之地,而且它们在很多方面都是互补的。由于需要连接和分析越来越多的东西,Wi-Fi 和 5G 市场都将增长。如果客户需要宏覆盖或高速切换,并且可以为这些功能支付额外成本,那么 5G 是可行的。
+
+5G 也适用于客户需要物理网络分段的某些工业用例。但对于绝大多数企业客户而言,Wi-Fi 将继续像现在一样证明自己作为可靠,安全且经济高效的无线接入技术的价值。
+
+**更多关于 802.11ax (Wi-Fi 6):**
+
+ * [为什么 802.11ax 是无线网络的下一件大事][7]
+ * [FAQ: 802.11ax Wi-Fi][8]
+ * [Wi-Fi 6 (802.11ax) 正在来到你附件的路由器][9]
+ * [带有 OFDMA 的 Wi-Fi 6 打开了一个全新的无线可能性世界][10]
+ * [802.11ax 预览:支持 Wi-Fi 6 的接入点和路由器随时可用][11]
+
+
+
+加入 [Facebook][12] 和 [LinkedIn][13] 上的 network world 社区,评论你认为最重要的话题。
+
+--------------------------------------------------------------------------------
+
+via: https://www.networkworld.com/article/3399978/5g-will-augment-wi-fi-not-replace-it.html
+
+作者:[Zeus Kerravala][a]
+选题:[lujun9972][b]
+译者:[GraveAccent](https://github.com/graveaccent)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.networkworld.com/author/Zeus-Kerravala/
+[b]: https://github.com/lujun9972
+[1]: https://images.idgesg.net/images/article/2019/05/wireless_connection_speed_connectivity_bars_cell_tower_5g_by_thinkstock-100796921-large.jpg
+[2]: https://www.networkworld.com/article/3203489/what-is-5g-how-is-it-better-than-4g.html
+[3]: https://www.networkworld.com/article/3354477/mobile-world-congress-the-time-of-5g-is-almost-here.html
+[4]: https://images.idgesg.net/images/article/2019/06/headshot_jlipton_aruba-100798360-small.jpg
+[5]: https://www.networkworld.com/article/3215907/why-80211ax-is-the-next-big-thing-in-wi-fi.html
+[6]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fcourses%2Fmobile-device-management-big-picture
+[7]: https://www.networkworld.com/article/3215907/mobile-wireless/why-80211ax-is-the-next-big-thing-in-wi-fi.html
+[8]: https://%20https//www.networkworld.com/article/3048196/mobile-wireless/faq-802-11ax-wi-fi.html
+[9]: https://www.networkworld.com/article/3311921/mobile-wireless/wi-fi-6-is-coming-to-a-router-near-you.html
+[10]: https://www.networkworld.com/article/3332018/wi-fi/wi-fi-6-with-ofdma-opens-a-world-of-new-wireless-possibilities.html
+[11]: https://www.networkworld.com/article/3309439/mobile-wireless/80211ax-preview-access-points-and-routers-that-support-the-wi-fi-6-protocol-on-tap.html
+[12]: https://www.facebook.com/NetworkWorld/
+[13]: https://www.linkedin.com/company/network-world
\ No newline at end of file
diff --git a/translated/tech/20180529 Manage your workstation with Ansible- Configure desktop settings.md b/translated/tech/20180529 Manage your workstation with Ansible- Configure desktop settings.md
new file mode 100644
index 0000000000..8989aa0a5a
--- /dev/null
+++ b/translated/tech/20180529 Manage your workstation with Ansible- Configure desktop settings.md
@@ -0,0 +1,193 @@
+使用 Ansible 管理工作站:配置桌面设置
+======
+
+
+
+在本系列关于使用 Ansible 配置工作站的[第一篇文章][1]中,我们设置了一个仓库并配置了一些基本的东西。在[第二篇文章][2]中,我们配置了 Ansible 以使其在对仓库进行更改时自动应用设置。在第三篇(也是最后一篇)文章中,我们将使用 Ansible 配置 GNOME 桌面设置。
+
+此配置只适用于较新的发行版(例如我将在示例中使用的 Ubuntu 18.04)。较旧版本的 Ubuntu 将无法运行,因为它们附带了一个老版本的 `python-psutils`,对于 Ansible 的 `dconf` 模块无法正常工作。如果你使用的是较新版本的 Linux 发行版,则应该没有问题。
+
+在开始之前,确保你已经完成了本系列的第一部分和第二部分,因为第三部分建立在此基础之上的。如果还没有,下载前两篇文章中一直使用的 GitHub 仓库,我们将为其添加更多功能。
+
+### 设置壁纸和锁屏
+
+首先,我们将创建一个任务手册来保存我们的 GNOME 设置。在仓库的根目录中,应该有一个名为 `local.yml` 的文件,添加以下行:
+```
+- include: tasks/gnome.yml
+
+```
+
+整个文件应如下所示:
+```
+- hosts: localhost
+
+ become: true
+
+ pre_tasks:
+
+ - name: update repositories
+
+ apt: update_cache=yes
+
+ changed_when: False
+
+
+
+ tasks:
+
+ - include: tasks/users.yml
+
+ - include: tasks/cron.yml
+
+ - include: tasks/packages.yml
+
+ - include: tasks/gnome.yml
+
+```
+
+基本上,这添加了对名为 `gnome.yml` 文件的引用,它将存储在仓库内的 `tasks` 目录中。我们还没有创建这个文件,现在就来创建它。在 `tasks` 目录中创建 `gnome.yml` 文件,并将以下内容放入:
+```
+- name: Install python-psutil package
+
+ apt: name=python-psutil
+
+
+- name: Copy wallpaper file
+
+ copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600
+
+
+
+- name: Set GNOME Wallpaper
+
+ become_user: jay
+
+ dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"
+
+```
+
+注意,此代码多次引用我的用户名(`jay`),因此确保使用你机器上的用户名替换每次出现的 `jay`。另外,如果你没有像我一样使用 Ubuntu 18.04,你将不得不更改 `apt` 一行来匹配你所选择的发行版的包管理器,并确认 `python-psutil` 包的名称,因为它可能有所不同。
+
+
+在示例任务中,我引用了 `file` 目录下的 `wallpaper.jpg` 文件,此文件必须存在,否则 Ansible 配置将失败。在 `tasks` 目录中,创建一个名为 `files` 的子目录。找到你喜欢的壁纸图片,将其命名为 `wallpaper.jpg`,然后把它放在 `files` 目录中。如果文件是 PNG 图像而不是 JPG,在代码和仓库中更改文件扩展名。如果你觉得没有创意,我在 [GitHub 仓库][3] 中有一个示例壁纸文件,你可以使用它。
+
+完成所有这些更改后,将内容提交到 GitHub 仓库,并推送这些更改。总结一下,你应该完成以下工作:
+
+ * 修改 `local.yml` 文件以引用 `tasks/gnome.yml`
+ * 使用上面提到的内容创建 `tasks/gnome.yml`
+ * 在 `tasks` 目录中创建一个 `files` 目录,其中有一个名为 `wallpaper.jpg` 的图像文件(或者你选择的任何名称)。
+
+
+完成这些步骤并将更改推送到仓库后,配置应该在下次计划运行期间自动应用。(你可能还记得我们在上一篇文章中对此进行了自动化。)如果你赶时间,可以使用以下命令立即应用配置:
+```
+sudo ansible-pull -U https://github.com//ansible.git
+
+```
+
+如果一切正常,你应该可以看到你的新壁纸。
+
+让我们花一点时间来了解新 GNOME 任务手册的功能。首先,我们添加了一个计划来安装 `python-psutil` 包。如果不添加它,我们就不能使用 `dconf` 模块,因为它需要在修改 GNOME 设置之前安装这个包。接下来,我们使用 `copy` 模块将壁纸文件复制到我们的 `home` 目录,并将生成的文件命名为以点开头的隐藏文件。如果你不希望此文件放在 `home` 目录的根目录中,你可以随时指示此部分将其复制到其它位置 - 只要你在正确的位置引用它,它仍然可以工作。在下一个计划中,我们使用 `dconf` 模块来更改 GNOME 设置。在这种情况下,我们调整了 `/org/gnome/desktop/background/picture-uri` 键并将其设置为 `file:///home/jay/.wallpaper.jpg`。注意本节中的引号 - 你必须在 `dconf` 值中使用两个单引号,如果值是一个字符串,还必须包含双引号。
+
+现在,让我们进一步进行配置,并将背景应用于锁屏。这是 GNOME 任务手册,但增加了两个额外的计划:
+```
+- name: Install python-psutil package
+
+ apt: name=python-psutil
+
+
+
+- name: Copy wallpaper file
+
+ copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600
+
+
+
+- name: Set GNOME wallpaper
+
+ dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"
+
+
+
+- name: Copy lockscreenfile
+
+ copy: src=files/lockscreen.jpg dest=/home/jay/.lockscreen.jpg owner=jay group=jay mode=600
+
+
+
+- name: Set lock screen background
+
+ become_user: jay
+
+ dconf: key="/org/gnome/desktop/screensaver/picture-uri" value="'file:///home/jay/.lockscreen.jpg'"
+
+```
+
+正如你所看到的,我们做的事情和设置壁纸时差不多。我们添加了两个额外的任务,一个是复制锁屏图像并将其放在我们的 `home` 目录中,另一个是将设置应用于 GNOME 以便使用它。同样,确保将 `jay` 更改为你的用户名,并命名你想要的锁屏图片 `lockscreen.jpg`,并将其复制到 `files` 目录。将这些更改提交到仓库后,在下一次计划的 Ansible 运行期间就会应用新的锁屏。
+
+### 应用新的桌面主题
+
+设置壁纸和锁屏背景很酷,但是让我们更进一步来应用桌面主题。首先,让我们在我们的任务手册中添加一条指令来安装 `arc` 主题的包。将以下代码添加到 GNOME 任务手册的开头:
+```
+- name: Install arc theme
+
+ apt: name=arc-theme
+
+```
+
+然后,在底部,添加以下任务:
+```
+- name: Set GTK theme
+
+ become_user: jay
+
+ dconf: key="/org/gnome/desktop/interface/gtk-theme" value="'Arc'"
+
+```
+
+你看到 GNOME 的 GTK 主题在你眼前变化了吗?我们添加了一个任务来通过 `apt` 模块安装 `arc-theme` 包,另一个任务将这个主题应用到 GNOME。
+
+### 进行其它定制
+
+既然你已经更改了一些 GNOME 设置,你可以随意添加其它定制。你在 GNOME 中调整的任何设置都可以通过这种方式自动完成,设置壁纸和主题只是几个例子。你可能想知道如何找到要更改的设置,以下一个适合我的技巧。
+
+首先,通过在你管理的计算机上运行以下命令,获取所有当前 `dconf` 设置的快照:
+```
+dconf dump / > before.txt
+
+```
+
+此命令将所有当前更改导出到名为 `before.txt` 的文件中。接下来,手动更改要自动化的设置,并再次获取 `dconf` 设置:
+```
+dconf dump / > after.txt
+
+```
+
+现在,你可以使用 `diff` 命令查看两个文件之间的不同之处:
+```
+diff before.txt after.txt
+
+```
+
+这应该会给你一个已更改键的列表。虽然手动更改设置确实违背了自动化的目的,但你实际上正在做的是获取更新首选设置时更改的键,这允许你创建 Ansible 任务以修改这些设置,这样你就再也不需要碰这些设置了。如果你需要还原机器,Ansible 仓库将负责你的每个定制。如果你有多台计算机,甚至是一组工作站,则只需手动进行一次更改,所有其他工作站都将应用新设置并完全同步。
+
+### 最后
+
+如果你已经阅读完本系列文章,你应该知道如何设置 Ansible 来自动化工作站。这些示例提供了一个有用的基线,你可以使用语法和示例进行其他定制。随着你的前进,你可以继续添加新的修改,这将使你的 Ansible 配置一直增长。
+
+我已经用 Ansible 以这种方式自动化了一切,包括我的用户帐户和密码、Vim、tmux 等配置文件、桌面包、SSH 设置、SSH 密钥,基本上我想要自定义的一切都使用了。以本系列文章作为起点,将为你实现工作站的完全自动化铺平道路。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/18/5/manage-your-workstation-ansible-part-3
+
+作者:[Jay LaCroix][a]
+选题:[lujun9972](https://github.com/lujun9972 )
+译者:[MjSeven](https://github.com/MjSeven)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:https://opensource.com/users/jlacroix
+[1]:https://opensource.com/article/18/3/manage-workstation-ansible
+[2]:https://opensource.com/article/18/3/manage-your-workstation-configuration-ansible-part-2
+[3]:https://github.com/jlacroix82/ansible_article.git
diff --git a/translated/tech/20190111 Top 5 Linux Distributions for Productivity.md b/translated/tech/20190111 Top 5 Linux Distributions for Productivity.md
deleted file mode 100644
index 40f5d63791..0000000000
--- a/translated/tech/20190111 Top 5 Linux Distributions for Productivity.md
+++ /dev/null
@@ -1,169 +0,0 @@
-[#]: collector: "lujun9972"
-[#]: translator: "qfzy1233"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-[#]: subject: "Top 5 Linux Distributions for Productivity"
-[#]: via: "https://www.linux.com/blog/learn/2019/1/top-5-linux-distributions-productivity"
-[#]: author: "Jack Wallen https://www.linux.com/users/jlwallen"
-
-五个最具生产力的 Linux 发行版
-======
-
-
-
-必须承认的是,这样一个热门的话题其实很难被总结出来。为什么呢?首先,Linux 在设计层面就是一种有生产力的操作系统。由于它极强的可靠性和稳定的平台,使得工作的开展变得简易化。其次为了衡量工作的效率,你需要考虑到哪项工作需要得到生产力方面的助推。是普通办公?开发类工作?学校事务?数据挖掘?或者是人力资源?你可以看到这一问题变得复杂起来了。
-
-然而,这并不意味着那些基于推动底层操作系统成为更为高效平台的发行版们可以在配置和呈现方面做的更好。恰恰相反,许多发行版在偏离生产力这条道路上越走越远,所以你不会意识到你自己处在工作的窘境中,而是继续挖掘自己的潜力在工期结束之前拼命赶上进度。这些 Linux 发行版可以帮助你化繁为简,因此或许可以减少你工作流程中的痛点。
-
-让我们来看一下这些发行版并为你找出适合你的最佳选择。为了更具条理,我按照生产力诉求把他们分成了几类。这项任务本身也是一种挑战,因为每个人在生产力提升上的需要是千差万别的。然而,我所关注的是下列的几项:
-
- * 普通生产力: 适于从事复杂工作并希望提升工作效率。
-
- * 平面设计: 适于从事设计创造和图像处理的人们。
-
- * 开发: 适于那些使用 Linux 桌面发行版来进行编程工作。
-
- * 管理人员: 适于那些需要某些版本来促进一体化的管理任务的人员。
-
- * 教育: 适于那些需要桌面发行版可以助力他们在教育领域更创造力的人们。
-
-
-诚然,有很多很多类别的发行版可供挑选,其中的很多可能用起来十分得心应手,但这五种或许是你最为需要的。
-
-
-### 普通生产力
-
-对普通的生产力诉求来说,你不会找到比 [Ubuntu][1] 更为高效的了。在这个类别中首推 Ubuntu 最基础的原因是因为它实现了桌面操作系统、软件、服务的无缝集成。你可能会问为什么我不选择同类别的 Linux Mint 呢?因为 Ubuntu 现在默认的的桌面环境为 GNOME 桌面,而它拥有 GNOME 许多扩展程序的优势的加成(图 1)。
-
-
-![GNOME Clipboard][3]
-
-图 1:运行中的 GNOME 桌面的剪切板管理工具。
-
-[经许可使用][4]
-
-这些扩展程序在提升生产力方面做了很多努力(所以 Ubuntu 比 Linux Mint 获得了更多的认可)。但是 Ubuntu 不仅仅支持 vanilla 版本的 GNOME 桌面。事实上,他们致力于将它改进的更为轻量化、更为高效、以及用户友好度更高、开箱即用。总而言之,由于 Ubuntu 正确的融合了多种特性,开箱即用,完善的软件支持(仅对工作方面而言),这些特性使它几乎成为了生产力领域最为完美的一个平台。
-
-不管你是要写一篇文档,制作一张电子表格,写一个新的软件,开啊公司的网站,设计商用的图形,管理一个服务器或是网络,抑或是在你的公司内从事人力资源管理工作, Ubuntu 都可以满足你的需求。Ubuntu 桌面发行版也并不要求你耗费很大的精力才能开始开始开展工作…他只是纯粹的工作(并且十分优秀)。最后,得益于 Debian 的基础,使得 Ubuntu 上安装第三方的软件十分简便。
-
-很难反对这一特殊的发行版在生产力发行版列表中独占鳌头,尽管 Ubuntu 几乎已经成为几乎所有“顶级发行版”列表的榜首。
-
-### 平面设计
-
-如果你正在寻求提升你的平面设计效率,你不能错过[Fedora设计套件][5]。这一 Fedora 的衍生版是由负责 Fedora 艺术类项目的团队亲自操刀制作的。虽然默认选择的应用程序并不是一个庞大的工具集合,但它所包含的工具都是创建和处理图像专用的。
-
-有了GIMP、Inkscape、Darktable、Krita、Entangle、Blender、Pitivi、Scribus等应用程序(图 2),您将发现完成图像编辑工作所需要的一切都已经准备好了,而且准备得很好。但是Fedora设计套件并不仅限于此。这个桌面平台还包括一堆教程,涵盖了许多已安装的应用程序。对于任何想要尽可能提高效率的人来说,这将是一些非常有用的信息。不过,我要说的是,GNOME Favorites中的教程不过是[此页][6]链接的内容。
-
-![Fedora Design Suite Favorites][8]
-
-图 2: Fedora Design Suite Favorites菜单包含了许多工具,可以让您用于图形设计。
-
-[经许可使用][4]
-
-那些使用数码相机的用户肯定会喜欢Entangle应用程序,它可以让你在电脑上上控制单反相机。
-
-### 开发人员
-
-几乎所有的Linux发行版对于程序员来说都是很好的编程平台。然而,有一种特定的发行版脱颖而出,并超越了其他发行版,它将是您见过的用于编程类最有效率的工具之一。这个操作系统来自[System76][9](译注:一家美国的计算机制造商),名为[Pop!_OS][10]。Pop!_OS是专门为创作者定制的,但不是针对艺术类。相反,Pop!_OS面向专门从事开发、编程和软件制作的程序员。如果您需要一个既能完美的胜任开发平台又包含桌面操作系统的开发环境,Pop!_OS 将会是您的不二选择。 (图 3)
-
-可能会让您感到惊讶(考虑到这个操作系统是多么“年轻”)的是Pop!_OS也是您使用过的基于 GNOME平台的最稳定系统的之一。这意味着 Pop!_OS 不只是为创造者和制造者准备的,也是为任何想要一个可靠的操作系统的人准备的。你可以下载针对你的硬件的专门 ISO 文件,这一点是许多用户十分欣赏的。如果你有英特尔硬件,[下载][10]Intel或AMD的版本。如果您的显卡是NVIDIA,请下载该特定版本。不管怎样,您肯定会得到针对不同平台进行特殊定制的稳定的版本。
-
-![Pop!_OS][12]
-
-图 3: 装有 GNOME 桌面的 Pop!_OS 一览。
-
-[经许可使用][4]
-
-有趣的是,在 Pop!_OS 中,您不会找到太多预装的开发工具。你也不会找到IDE或许多其他开发工具。但是,您可以在Pop 商店中中找到所需的所有开发工具。
-
-### 管理人员
-
-如果你正在寻找适合管理领域的最生产力的发行版本,[Debian][13]将会是你的不二之选。为什么这么说呢?因为 Debian 不仅仅拥有无与伦比的可靠性,它也是众多能从苦海中将你解救出来的最好的一个版本。Debian是易用性和无限可能性的完美结合。最重要的是,因为它是许多其他发行版的基础,所以可以打赌的是,如果您需要一个任务的管理工具,那么它一定支持 Debian 系统。当然,我们讨论的是一般管理任务,这意味着大多数时候您需要使用终端窗口 SSH 连接到服务器(图4),或者在浏览器上使用网络上基于web的GUI工具。既然如此为什么还要使用一个复杂的桌面呢(比如Fedora中的SELinux或openSUSE中的YaST)呢?所以,应选择更为简洁易用的那一种。
-![Debian][15]
-
-图 4: 在 Debian 系统上通过SSH 连接到远程服务器。
-
-[经授权使用][4]
-
-你可以选择你想要的不同的桌面(包括GNOME, Xfce, KDE, Cinnamon, MATE, LXDE),确保你所使用的桌面外观最适合你的工作习惯。
-
-### 教育
-
-如果你是一名老师或者学生,抑或是其他从事与教育相关工作的人士,你需要适当的工具来变得更具创造力。之前,有 Edubuntu 这样的版本。这一版本位列教育类相关发行版排名的前列。然而,自从 Ubuntu 14.04 版之后这一发行版就再也没有更新。还好,现在有一款基于 openSUSE 的新的以教育为基础的发行版有望夺摘得桂冠。这一改版叫做 [openSUSE:Education-Li-f-e][16] (Linux For Education - 图 5), 它基于 openSUSE Leap 42.1 (所以它可能稍微有一点过时)。
-
-openSUSE:Education-Li-f-e 包含了一下工具:
-
- * Brain Workshop(大脑工坊) - 一种基于 dual n-back 模式的大脑训练软件(译注:dual n-back 训练是一种科学的智力训练方法,可以改善人的工作记忆和流体智力)
-
- * GCompris - 一种针对青少年的教育软件包
-
- * gElemental - 一款元素周期表查看工具
-
- * iGNUit - 一款通用的记忆卡片工具
-
- * Little Wizard - 基于 Pascal 语言的少儿编程开发环境
-
- * Stellarium - 天文模拟器
-
- * TuxMath - 数学入门游戏
-
- * TuxPaint - 一款少儿绘画软件
-
- * TuxType - 一款为少儿准备的打字入门软件
-
- * wxMaxima - 一个跨平台的计算机代数系统
-
- * Inkscape - 矢量图形编辑软件
-
- * GIMP - 图像处理软件(译注:被誉为 Linux 上的 PhotoShop)
-
- * Pencil - GUI 模型制作工具
-
- * Hugin - 全景照片拼接及 HDR 效果混合软件
-
-
-![Education][18]
-
-图 5: openSUSE:Education-Li-f-e 发行版拥有大量的工具可以帮你在学校中变得更为高效。
-
-[经许可使用][4]
-
-同时还集成在 openSUSE:Education-Li-f-e 中的还有 [KIWI-LTSP Server][19] 。Also included with openSUSE:Education-Li-f-e is the [KIWI-LTSP Server][19]. KIWI-LTSP KIWI-LTSP服务器是一个灵活的、成本有效的解决方案,旨在使全世界的学校、企业和组织能够轻松地安装和部署桌面工作站。虽然这可能不会直接帮助学生变得更具创造力,但它肯定会使教育机构在部署供学生使用的桌面时更有效率。有关配置 KIWI-LTSP 的更多信息,请查看openSUSE [KIWI-LTSP quick start guide][20].
-
-通过 Linux 基金会和 edX 的免费["入门介绍"][21]课程来了解更多关于 Linux 的知识。
-
---------------------------------------------------------------------------------
-
-via: https://www.linux.com/blog/learn/2019/1/top-5-linux-distributions-productivity
-
-作者:[Jack Wallen][a]
-选题:[lujun9972][b]
-译者:[qfzy1233](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.linux.com/users/jlwallen
-[b]: https://github.com/lujun9972
-[1]: https://www.ubuntu.com/
-[2]: /files/images/productivity1jpg
-[3]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_1.jpg?itok=yxez3X1w "GNOME Clipboard"
-[4]: /licenses/category/used-permission
-[5]: https://labs.fedoraproject.org/en/design-suite/
-[6]: https://fedoraproject.org/wiki/Design_Suite/Tutorials
-[7]: /files/images/productivity2jpg
-[8]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_2.jpg?itok=ke0b8qyH "Fedora Design Suite Favorites"
-[9]: https://system76.com/
-[10]: https://system76.com/pop
-[11]: /files/images/productivity3jpg-0
-[12]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_3_0.jpg?itok=8UkCUfsD "Pop!_OS"
-[13]: https://www.debian.org/
-[14]: /files/images/productivity4jpg
-[15]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_4.jpg?itok=c9yD3Xw2 "Debian"
-[16]: https://en.opensuse.org/openSUSE:Education-Li-f-e
-[17]: /files/images/productivity5jpg
-[18]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/productivity_5.jpg?itok=oAFtV8nT "Education"
-[19]: https://en.opensuse.org/Portal:KIWI-LTSP
-[20]: https://en.opensuse.org/SDB:KIWI-LTSP_quick_start
-[21]: https://training.linuxfoundation.org/linux-courses/system-administration-training/introduction-to-linux
diff --git a/translated/tech/20190301 Emacs for (even more of) the win.md b/translated/tech/20190301 Emacs for (even more of) the win.md
deleted file mode 100644
index 16313fc019..0000000000
--- a/translated/tech/20190301 Emacs for (even more of) the win.md
+++ /dev/null
@@ -1,83 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (oneforalone)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Emacs for (even more of) the win)
-[#]: via: (https://so.nwalsh.com/2019/03/01/emacs)
-[#]: author: (Norman Walsh https://so.nwalsh.com)
-
-Emacs 的胜利(或是更多)
-======
-
-我天天用 Emacs,但我却从意识到。但是每当我用 Emacs 时,它都给我带来了很多乐趣。
-
->如果你是个职业作家……Emacs 与其它的编辑器的相比就如皓日与群星一样。不仅更大、更亮,它轻而易举就让其他所有的东西都消失了。
-
-我用 [Emacs][1] 已有二十多年了。我用它来写几乎所有的东西(Scala 和 Java 我用 [IntelliJ][2])。看邮件的话我是能在 Emacs 里看就在里面看。
-
-尽管我用 Emacs 已有数十年,我在新年前后才意识到,在过去10年或更长时间里,我对 Emacs 的使用几乎没有什么变化。当然,新的编辑模式出现了,我就会选一两个插件,几年前我确实是用了 [Helm][3],但大多数时候,它只是完成了我需要的所有繁重工作,日复一日,没有抱怨,也没有妨碍我。一方面,这证明了它有多好。另一方面,这是一个邀请,让我深入挖掘,看看我错过了什么。
-
-于此同时,我也决定从以下几方面改进我的工作方式:
-
- * **更好的议程管理** 我在工作中负责几个项目,这些项目有定期和临时的会议;有些我是我主持的,有些我只要参加就可以。
-
-我意识到我对开会变得草率起来了了。坐在一个有会议要开的房间里实在是太容易了,但实际上你可以阅读电子邮件,处理其他事情。(我强烈反对在会议中“禁止携带笔记本电脑”的这条规定,但这就是另一个话题。)
-
-草率地去开会有几个问题。首先,这是对主持会议的人和其他参与者的不尊重。实际上这是不这么做的完美理由,但我还有意识到令一个问题:它忽视了会议的成本。
-
-如果你在开会,但同时还要回复电子邮件,也许还要改 bug,那么这个会议就不需要花费任何东西(或同样多的钱)。如果会议成本低廉,那么会议数量将会更多。
-
-我想要少点、短些的会议。我不想忽视它们的成本,我想让开会变得很有价值,除非绝对必要,否则就可以避免。
-
-有时,开会是很有必要的。而且我认为一个简短的会能够很快的解决问题。但是,如果我一天有十个短会的话,那还是不要说我做了些有成果的事吧。
-
-我决定在我参加的所有的会上做笔记。我并不是说一定要做会议记录,而是我在做某种会议记录。这会让我把注意力集中在开会上,而忽略其他事。
-
- * **更好的时间管理** 我有很多要做和想做的事,或工作的或私人的。之前,我有在问题清单和邮件进程(Emacs 和 [Gmail][4] 中,用于一些稍微不同的提醒)、日历、手机上各种各样的“待办事项列表”和小纸片上记录过它们。可能还有其他地方。
-
-我决定把它们放在一起。不是说我认为有一个地方就最好或更好,而是说我想完成两件事。首先,把它们都放在一个地方,我能够对我把精力放在哪里有一个更好、更全面的看法。第二,也是因为我想养成一个习惯。固定的或有规律的倾向或行为,尤指难以放弃的。记录、跟踪并保存它们。
-
- * **更好的说明** 如果你在某些科学或工程领域工作,你就会养成记笔记的习惯。唉,我没有。但我决定这么做。
-
-我对法律上鼓励装订页面或做永久标记并不感兴趣。我感兴趣的是养成做记录的习惯。我的目标是有一个地方记下想法和设计草图等。如果我突然有了灵感,或者我想到了一个不在测试套件中的边缘案例,我希望我的本能是把它写在我的日志中,而不是草草写在一张小纸片上,或者向自己保证我会记住它。
-
-
-
-这些决心让我很快或多或少地转到了 [Org][6]。Org 有一个庞大的、活跃的、忠诚的用户社区。我以前也用过它(顺带一提,我有[写过][7]它,至少在几年前),我花了很长的一段时间(将 [MarkLogic 集成][8]到其中。(天哪,这在过去的一两个星期里得到了回报!)
-
-但我从没用过 Org。
-
-我现在正在用它。我用了几分钟,我把所有要做的事情都记录下来,我还记了日记。我不确定我试图对它进行边界或列举它的所有特性有多大价值,你可以通过网页快速地搜索找到很多。
-
-如果你用 Emacs,那你也应该用 Org。如果没用过Emacs,我相信你不会是第一个因 Org 而使用 Emacs 的人。Org 可以做很多。它需要一点时间来学习你的方法和快捷键,但我认为这是值得的。(如果你的口袋中有一台 [iOS][9] 设备,我推荐你在忙的时候使用 [beorg][10] 来记录。)
-
-当然,我想出了如何[将 XML 从其中提取出来][11]⊕“working out” 确实是“用 elisp 来编程”的一种有趣的拼写方式。然后,如何将它转换回我的 weblog 期望的标记(当然,在 Emacs 中按下一个按钮就可以做到)。这是第一次用 Org 写的帖子。这也不会是最后一次。
-
-附注:生日快乐,[小博客][12]。
-
---------------------------------------------------------------------------------
-
-via: https://so.nwalsh.com/2019/03/01/emacs
-
-作者:[Norman Walsh][a]
-选题:[lujun9972][b]
-译者:[oneforalone](https://github.com/oneforalone)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://so.nwalsh.com
-[b]: https://github.com/lujun9972
-[1]: https://en.wikipedia.org/wiki/Emacs
-[2]: https://en.wikipedia.org/wiki/IntelliJ_IDEA
-[3]: https://emacs-helm.github.io/helm/
-[4]: https://en.wikipedia.org/wiki/Gmail
-[5]: https://en.wikipedia.org/wiki/Lab_notebook
-[6]: https://en.wikipedia.org/wiki/Org-mode
-[7]: https://www.balisage.net/Proceedings/vol17/html/Walsh01/BalisageVol17-Walsh01.html
-[8]: https://github.com/ndw/ob-ml-marklogic/
-[9]: https://en.wikipedia.org/wiki/IOS
-[10]: https://beorgapp.com/
-[11]: https://github.com/ndw/org-to-xml
-[12]: https://so.nwalsh.com/2017/03/01/helloWorld
diff --git a/translated/tech/20190320 4 cool terminal multiplexers.md b/translated/tech/20190320 4 cool terminal multiplexers.md
new file mode 100644
index 0000000000..fd35fce491
--- /dev/null
+++ b/translated/tech/20190320 4 cool terminal multiplexers.md
@@ -0,0 +1,122 @@
+[#]: collector: (lujun9972)
+[#]: translator: (geekpi)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (4 cool terminal multiplexers)
+[#]: via: (https://fedoramagazine.org/4-cool-terminal-multiplexers/)
+[#]: author: (Paul W. Frields https://fedoramagazine.org/author/pfrields/)
+
+4 款很酷的终端复用器
+======
+
+![][1]
+
+Fedora 系统对很多用户来说都很舒适。它有一个令人惊叹的桌面,可以轻松地完成日常任务。表面之下有 Linux 系统的全部功能,终端是高级用户使用它们的最简单的方法。默认的终端简单且功能有限。但是,_终端复用器_能让你的终端变得非常强大。本文展示了一些流行的终端多路复用器以及如何安装它们。
+
+
+你为什么要用它?嗯,首先,它可以让你注销你的系统,同时_让你的终端会话不受干扰_。退出你的控制台,加密它,在其他地方旅行时通过远程登录 SSH 继续之前的操作是非常有用的。这里有一些工具可以看下。
+
+最古老和最知名的终端多路复用器之一是 _screen_。但是,由于代码不再维护,本文将重点介绍最近的应用。 (“最近的”是相对的,其中一些已存在多年!)
+
+### Tmux
+
+_tmux_ 是 _screen_ 的最广泛使用的替换之一。它有高度可配置的接口。你可以根据需要对 tmux 进行编程以启动特定类型的会话。在前面发表的这篇文章中你会发现更多关于 tmux 的信息:
+
+> [使用 tmux 实现更强大的终端][2]
+
+已经是 tmux 用户?你可能会喜欢[这篇使你的 tmux 会话更有效的文章][3]。
+
+要安装 tmux,由于你可能已经在终端中,请使用 _dnf_ 并带上 _sudo_:
+
+```
+$ sudo dnf install tmux
+```
+
+要开始学习,请运行 _tmux_ 命令。单窗格窗口以你的默认 shell 启动。tmux 使用_修饰键_来表示接下来会发出命令。默认情况下,此键为 **Ctrl+B**。如果输入 **Ctrl+B, C**,你将创建一个带有 shell 的新窗口。
+
+提示:使用 **Ctrl+B, ?** 进入帮助模式,会列出你可以使用的所有键。为了简单起见,你先查看 _bind-key -T prefix_ 开头的行。这些是你可以在修饰键之后立即使用的键,可以用来配置你的 tmux 会话。你可以按 **Ctrl+C** 退出帮助模式回 tmux。
+
+要完全退出 tmux,请使用标准 _exit_ 命令或 _Ctrl+D_ 退出所有 shell。
+
+### Dvtm
+
+你可能最近在 Fedroa Magzine上看到过一篇 [dwm,一个动态窗口管理器][4]的文章。像 dwm 一样,_dvtm_ 用于平铺窗口管理,但是用在终端中。它的设计坚持 UNIX 的“做好一件事”的理念,在这里是管理终端中的窗口。
+
+安装 dvtm 也很简单。但是,如果你想要前面提到的注销功能,你还需要 _abduco_ 包来处理 dvtm 的会话管理。
+
+```
+$ sudo dnf install dvtm abduco
+```
+
+dvtm 已经映射了许多管理终端窗口的按键。默认情况下,它使用 **Ctrl+G** 作为其修饰键。这个按键告诉 dvtm 接下来的字符将成为它应该处理的命令。例如, **Ctrl+G, C** 创建一个新窗口,**Ctrl+G, X** 将其关闭。
+
+有关使用 dvtm 的更多信息,请查看 dvtm 的[主页][5],其中包含大量提示和入门信息。
+
+### Byobu
+
+虽然 _byobu_ 本身并不是真正的多路复用器 - 它封装了 _tmux_ 甚至更老的 _screen_ 来添加功能,但它也值得在这里一提。通过帮助菜单和窗口选项卡,以便更加容易地找到功能,Byobu 使终端复用器更适合初学者。
+
+当然它也可以在 Fedora 仓库中找到。要安装它,请使用以下命令:
+
+```
+$ sudo dnf install byobu
+```
+
+默认情况下,_byobu_ 会在内部运行 _screen_,因此你可能希望运行 _byobu-tmux_ 来封装 _tmux_。你可以使用 **F9** 键打开帮助菜单以获取更多信息,来帮助你入门。
+
+### Mtm
+
+_mtm_ 是你可以找到的最小的复用器之一。事实上,它只有大约 1000 行代码!如果你处于受限的环境(例如旧硬件、最小容器等)中,你可能会发现它很有用。要开始使用,你需要安装一些包。
+
+```
+$ sudo dnf install git ncurses-devel make gcc
+```
+
+然后克隆 mtm 所在的仓库:
+
+```
+$ git clone https://github.com/deadpixi/mtm.git
+```
+
+进入 _mtm_ 文件夹并构建程序:
+
+```
+$ make
+```
+
+你可能会收到一些警告,但完成后,你将会有一个非常小的 _mtm_ 程序。使用以下命令运行它:
+
+```
+$ ./mtm
+```
+
+你可以在 [GitHub 页面][6]上找到该程序的所有文档。
+
+这里只是一些终端复用器。你有想推荐的么?请在下面留下你的评论,享受在终端中创建窗口吧!
+
+* * *
+
+_由 _[ _Michael_][7]_ 拍摄,发布于 [Unsplash][8]。_
+
+--------------------------------------------------------------------------------
+
+via: https://fedoramagazine.org/4-cool-terminal-multiplexers/
+
+作者:[Paul W. Frields][a]
+选题:[lujun9972][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://fedoramagazine.org/author/pfrields/
+[b]: https://github.com/lujun9972
+[1]: https://fedoramagazine.org/wp-content/uploads/2018/08/tmuxers-4-816x345.jpg
+[2]: https://fedoramagazine.org/use-tmux-more-powerful-terminal/
+[3]: https://fedoramagazine.org/4-tips-better-tmux-sessions/
+[4]: https://fedoramagazine.org/lets-try-dwm-dynamic-window-manger/
+[5]: http://www.brain-dump.org/projects/dvtm/#why
+[6]: https://github.com/deadpixi/mtm
+[7]: https://unsplash.com/photos/48yI_ZyzuLo?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[8]: https://unsplash.com/search/photos/windows?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
diff --git a/translated/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md b/translated/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md
new file mode 100644
index 0000000000..51ab44b6c5
--- /dev/null
+++ b/translated/tech/20190505 Blockchain 2.0 - Public Vs Private Blockchain Comparison -Part 7.md
@@ -0,0 +1,96 @@
+[#]: collector: (lujun9972)
+[#]: translator: (zionfuo)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Blockchain 2.0 – Public Vs Private Blockchain Comparison [Part 7])
+[#]: via: (https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/)
+[#]: author: (editor https://www.ostechnix.com/author/editor/)
+
+区块链 2.0:公有链 Vs 私有链(七)
+======
+
+![Public vs Private blockchain][1]
+
+[**区块链 2.0**][2]系列的前一篇文章探索了[**智能合同的现状**][3]。这篇文章旨在揭示可以创建的不同类型的区块链。每个协议都用于与众不同的应用程序,并且根据用例的不同,每个应用程序所遵循的协议也不同。现在,让我们比较一下公有链、开源软件与私有链、专有技术。
+
+正如我们所知,基于区块链的分布式账本的基本三层结构如下:
+
+![][4]
+图1 – 区块链分布式账本的基本结构
+
+这里提到的类型之间的差异主要是因为底层区块链的协议。该协议规定了参与者的规则和参与的方式。
+
+阅读本文时,请记住以下几点事项:
+
+- 任何平台的产生都是为了解决需求而生。技术应该采取最好的方向。例如,区块链具有巨大的应用价值,其中一些可能需要丢弃在其他设置中看起来很重要的功能。在这方面,**分布式存储**就是最好的例子。
+- 区块链基本上是数据库系统,通过时间戳和区块的形式组织数据来跟踪信息。此类区块链的创建者可以选择谁有权产出这些区块并进行修改。
+- 区块链也可以“中心化”,设置不同的参与程度,可以得出那些参与者是符合条件的“中心”节点。
+
+大多数区块链要么是公有的,要么是私有的。一般来说,公有链可以被认为是开源软件的等价物,大多数私有链可以被视为源自公有链的专有平台。下图应该会让大多数人明显地看出基本的区别。
+
+![][5]
+图2 – 公有链/私有链与开源/专有技术的对比
+
+虽然这是最受欢迎的理解。但是这并不是说所有的私有链都是从公有链中衍生出来的。
+
+### 公有链
+
+公有链可以被视为是一个开放的平台或网络。任何拥有专业知识和计算资源的人都可以参与其中。这将产生以下影响:
+
+- 任何人都可以加入公有链网络并参与到其中。“参与者” 所需要的只是稳定的网络资源和计算资源。
+- 参与包括了读取、写入、验证和交易期间的共识。比特币矿工就是很好的例子。作为网络的参与者,矿工会得到比特币作为回报。
+- 平台完全去中心,完全冗余。
+- 由于去中心化,没有一个主体可以完全控制分类账中记录的数据。所有 (或大多数) 参与者都需要通过验证区块的方式检查数据。
+- 这意味着,一旦信息被验证和记录,就不能轻易改变。即使这样,也不可能留下痕迹。
+- 在比特币和莱特币等平台上,参与者的身份仍然是匿名的。设计这些平台的目的是保护和保护用户身份。这主要是由上层协议栈提供的功能。
+- 在BITCOIN和LITECOIN等平台上,参与者的身份仍然是匿名的。这些平台的设计旨在保护和保护用户身份。这主要是由上层协议栈提供的功能。
+- 公有链有比特币、莱特币、以太坊等不同的网络。
+- 广泛的去中心化意味着,区块链分布式网络与实现的交易相比,在交易上获得共识可能需要一段时间,并且吞吐量对于旨在每时刻推动大量交易的大型企业来说可能是一个挑战。
+- 开放式参与,使比特币等公有链中的大量参与者,往往会增加对计算设备和能源成本的初始投资。
+
+
+### 私有链
+
+相比之下,私有链是被许可的区块链。含义:
+
+- 参与网络的许可受到限制,并由监督网络的所有者或机构主持。这意味着,即使个人能够存储数据并进行交易 (例如,发送和接收付款),这些交易的验证和存储也只能由选定的参与者来完成。
+- 参与者一旦获得中心机构的许可,将受到条款的限制。例如,在金融机构运营的私有链网络中,并不是每个客户都可以访问整个区块链的分布式账本,甚至在那些获得许可的客户中, 不是每个人都能访问所有的东西。在这种情况下,中心机构将授予访问选择服务的权限。这通常被称为 “通道”。
+- 与公有链相比,这种系统具有更大的吞吐量能力,也展示了更快的交易速度,因为区块只需要由少数几个人验证。
+- 公有链以设计安全著称。他们的实现依靠以下几点:
+ - 匿名参与者
+ - 多个节点上的分布式和冗余的加密存储
+ - 创建和更改数据需要大量的共识
+
+私有链通常在其协议中没有任何特征。这使得该系统仅与目前使用的大多数基于云的数据库系统一样安全。
+
+### 智者的观点
+
+需要注意的一点是,它们被命名为 public 或 private (或 open 或 close) 的事实与底层代码库无关。在这两种情况下,平台所基于的代码或文字基础可能是公开的,也可能不是公开的。R3 是一家 DLT (**D**istributed **L**edger **T**echnology) 公司,领导着由 200 多家跨国机构组成的公有财团。他们的目标是在金融和商业领域进一步发展区块链和相关分布式账本技术。Corda 是这一共同努力的产物。R3 将 corda 定义为专门为企业构建的区块链平台。同样的代码库是开源的,鼓励世界各地的开发人员为这个项目做出贡献。然而,考虑到 corda 面临的业务性质和旨在满足的需求,corda 将被归类为许可的封闭区块链平台。这意味着企业可以在部署后选择网络的参与者,并通过使用本机可用的智能合约工具选择这些参与者可以访问的信息类型。
+
+虽然像比特币和以太坊这样的公有链对这个领域的广泛认知和发展负有责任,这是一个现实, 仍然可以争辩说,为企业或商业环境中的特定用例设计的私有链将在短期内引领货币投资。这些都是我们大多数人在不久的将来会看到以实际方式运用起来的平台。
+
+阅读本系列中写一篇文章是有关Hyperledger项目的。
+
+- [**Blockchain 2.0 – An Introduction To Hyperledger Project (HLP)**][6]
+
+我们正在研究更多有趣的区块链技术话题。敬请期待!
+--------------------------------------------------------------------------------
+
+via: https://www.ostechnix.com/blockchain-2-0-public-vs-private-blockchain-comparison/
+
+作者:[editor][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://www.ostechnix.com/author/editor/
+[b]: https://github.com/lujun9972
+[1]: https://www.ostechnix.com/wp-content/uploads/2019/04/Public-Vs-Private-Blockchain-720x340.png
+[2]: https://www.ostechnix.com/blockchain-2-0-an-introduction/
+[3]: https://www.ostechnix.com/blockchain-2-0-ongoing-projects-the-state-of-smart-contracts-now/
+[4]: http://www.ostechnix.com/wp-content/uploads/2019/04/blockchain-architecture.png
+[5]: http://www.ostechnix.com/wp-content/uploads/2019/04/Public-vs-Private-blockchain-comparison.png
+[6]: https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/
diff --git a/translated/tech/20190613 IPython is still the heart of Jupyter Notebooks for Python developers.md b/translated/tech/20190613 IPython is still the heart of Jupyter Notebooks for Python developers.md
new file mode 100644
index 0000000000..6153a838f8
--- /dev/null
+++ b/translated/tech/20190613 IPython is still the heart of Jupyter Notebooks for Python developers.md
@@ -0,0 +1,93 @@
+[#]: collector: (lujun9972)
+[#]: translator: (chen-ni)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (IPython is still the heart of Jupyter Notebooks for Python developers)
+[#]: via: (https://opensource.com/article/19/6/ipython-still-heart-jupyterlab)
+[#]: author: (Matthew Broberg https://opensource.com/users/mbbroberg/users/marcobravo)
+
+对 Python 开发者而言,IPython 仍然是 Jupyter Notebook 的核心
+======
+Jupyter 项目提供的魔法般的开发体验很大程度上得益于它的 IPython 基因。
+![I love Free Software FSFE celebration][1]
+
+最近刚刚写过我为什么觉得觉得 Jupyter 项目(特别是 JupyterLab)提供了一种 [魔法般的 Python 开发体验][2]。在研究这些不同项目之间的关联的时候,我回顾了一下 Jupyter 最初从 IPython 分支出来的这段历史。正如 Jupyter 项目的 [大拆分™ 声明][3] 所说:
+
+> “如果你不明白 Jupyter 是什么,这么说吧,它拥有和 IPython 同样的代码,并且是由同一批人开发的,只不过取了一个新名字、安了一个新家。”
+
+下面这个注脚进一步说明了这一点:
+
+> “我从声明中解读出来的信息是,‘Jupyter 和 IPython 非常相似,但是拥有多种语言’,这也可以很好地解释为什么这个项目的名字已经不再需要包含 Python,因为当时它已经支持多种语言了。”
+
+我明白 Jupyter Notebook 和 IPython 都是从同样的源代码里分支出来的,但是不太清楚 IPython 项目的现状。在大拆分™ 之后它是已经不再被需要了,还是在以另一种方式延续着?
+
+后来我惊讶地发现,IPython 仍然不断在为 Python 使用者提供价值,它正是 Jupyter 体验的核心部分。下面是 Jupyter 常见问题页面的一段截取:
+
+> **有什么语言是需要预装的吗?**
+>
+> 是的,安装 Jupyter Notebook 会首先安装 IPython 内核。这样我们就可以在 notebook 上运行 Python 语言了。
+
+现在我明白了,在 JupyterLab(以及 Jupyter Notebook)上编写 Python 程序仍然需要依赖 IPython 内核的持续开发。不仅如此,IPython 还充当了最为强大的默认内核的角色,根据 [这份文档][4],它是其它语言内核之间的枢纽,节省了很多开发时间和精力。
+
+现在唯一的问题是,IPython 本身可以做什么呢?
+
+### IPython 如今的作用
+
+IPython 提供了一个强大的、交互性的 Python shell,以及 Jupyter 的内核。安装完成之后,我可以在任何命令行运行 **ipython** 本身,将它当作一个(比默认 Python shell 好太多的)Python shell 来使用:
+
+
+```
+$ ipython
+Python 3.7.3 (default, Mar 27 2019, 09:23:15)
+Type 'copyright', 'credits' or 'license' for more information
+IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.
+
+In [1]: import numpy as np
+In [2]: example = np.array([5, 20, 3, 4, 0, 2, 12])
+In [3]: average = np.average(example)
+In [4]: print(average)
+6.571428571428571
+```
+
+这就让我们发现了一个更为重要的问题:是IPython 让 JupyterLab 可以在项目中执行代码,并且支持了一系列被称为 *magic*的功能(感谢 Nicholas Reith 在我上一篇文章的评论里提到这点)。
+
+### IPython 让魔法成为现实
+
+JupyterLab 和其它使用 IPython 的前端工具可以让你感觉像是在最喜欢的 IDE 或者是终端模拟器的环境下工作。我非常喜欢 [dotfiles][5] 快捷键功能,magic 也有类似 dotfile 的特征。比如说,可以试一下 **[%bookmark][6]** 这个命令。我把默认开发文件夹 **~/Develop** 关联到了一个可以在任何时候直接跳转的快捷方式上。
+
+![Screenshot of commands from JupyterLab][7]
+
+**%bookmark**、**%cd**,以及我在前一篇文章里介绍过的 **!** 操作符,都是由 IPython 支持的。正如这篇 [文档][8] 所说:
+
+> Jupyter 用户你们好:Magic 功能是 IPython 内核提供的专属功能。一个内核是否支持 Magic 功能是由该内核的开发者针对该内核所决定的。
+
+### 写在最后
+
+作为一个好奇的新手,我之前并不是特别确定 IPython 是否仍然和 Jupyter 生态还有任何联系。现在我对 IPython 的持续开发有了新的认识和,并且意识到它正是 JupyterLab 强大的用户体验的来源。这也是相当有才华的一批贡献者进行最前沿研究的成果,所以如果你在学术论文中使用到了 Jupyter 项目的话别忘了引用他们。为了方便引用,他们还提供了一个 [现成的引文][9]。
+
+如果你在考虑参与哪个开源项目的贡献的话,一定不要忘了 IPython 哦。记得看看 [最新发布说明][10],在这里可以找到 magic 功能的完整列表。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/19/6/ipython-still-heart-jupyterlab
+
+作者:[Matthew Broberg][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/mbbroberg/users/marcobravo
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ilovefs_free_sticker_fsfe_heart.jpg?itok=gLJtaieq (I love Free Software FSFE celebration)
+[2]: https://opensource.com/article/19/5/jupyterlab-python-developers-magic
+[3]: https://blog.jupyter.org/the-big-split-9d7b88a031a7
+[4]: https://jupyter-client.readthedocs.io/en/latest/kernels.html
+[5]: https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory#Unix_and_Unix-like_environments
+[6]: https://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=magic#magic-bookmark
+[7]: https://opensource.com/sites/default/files/uploads/jupyterlab-commands-ipython.png (Screenshot of commands from JupyterLab)
+[8]: https://ipython.readthedocs.io/en/stable/interactive/magics.html
+[9]: https://ipython.org/citing.html
+[10]: https://ipython.readthedocs.io/en/stable/whatsnew/index.html
diff --git a/translated/tech/20190625 The innovation delusion.md b/translated/tech/20190625 The innovation delusion.md
new file mode 100644
index 0000000000..8e20ad0d98
--- /dev/null
+++ b/translated/tech/20190625 The innovation delusion.md
@@ -0,0 +1,88 @@
+[#]: collector: (lujun9972)
+[#]: translator: (chen-ni)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (The innovation delusion)
+[#]: via: (https://opensource.com/open-organization/19/6/innovation-delusion)
+[#]: author: (Jim Whitehurst https://opensource.com/users/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans)
+
+创新的幻觉
+======
+创新是一种混乱的过程,但是关于创新的故事却很有条理。我们不应该把两者搞混了。
+![gears and lightbulb to represent innovation][1]
+
+如果说 [传统的规划方法已经消亡了][2],为什么这么多机构还在孜孜不倦地运用那些针对工业革命所设计的规划方法呢?
+
+其中的一个原因是,我们错误地认为创新是可以通过结构化的、线性的过程实现的。我觉得这样做是在混淆关于创新的 **故事** 和创新这个 **过程** 本身 —— 两者是截然不同的东西。
+
+创新的过程是混乱和不可预测的,并不遵循井然有序的时间线。过程中充满了重复迭代、突然的改变方向、各式各样的启动和终止、死胡同、失败(但愿是有用的失败),以及很多不可知的变量。创新是混乱的。
+
+但是关于创新的故事却让事情显得很简单,从讲述伟大发明的书籍和文章,到我们(简化了整个过程之后)讲述自己在工作上的成功都是这样。想想你在社交媒体上读的帖子里,有多少都只写了最好的、最愉快的部分吧。
+
+好故事就是这样。我们把一些原本分散的时间点干净利落地整理到一起,有开头、有发展、也有结尾。尽管我们一路上经历了很多没有把握、恐慌、甚至是绝望的时刻,在故事里这些坎坷却都被抹平了,让事情看起来像是从一开始就注定是成功的。
+
+我们不应该把混乱的过程和简化了的故事搞混。否则,我们会错误地认为可以使用在简单线性过程中所使用的同样的方法迎接创新的挑战。换句话说,我们将适用于一种类型的活动(比较偏死记硬背、机械和规则性的任务)的管理技术应用在了并不适用的另一种类型的活动(更加有创造性的、非线性的工作,需要自主性和试验)上。
+
+### 一个创新的故事
+
+下面这个故事可以很好地说明这一点。这是我 [最喜欢举的例子][2] 之一。
+
+在 1970 年代,英国的摩托车行业怎么也想不明白为什么他们在美国的市场份额急剧下降,而本田公司的市场份额却急速攀升。他们雇佣了波士顿咨询公司(刚好是我之前的雇主)帮助他们找出问题所在。波士顿咨询搜集了一些历史数据,回看了二十年的历史事件,总结出了一个井井有条的、线性的故事,可以很好地解释本田公司的成功。
+
+[波士顿咨询的结论是][3],本田公司使用了一个巧妙的策略:通过一种可以以更低价格销售的偏小型摩托车进入美国市场,并且借助于他们在日本本土市场发展出来的规模经济,在美国市场使用低价策略发展市场份额,然后等到需求进一步增长的时候,再利用更大的规模经济发展他们在美国的市场份额。在所有人的眼中,本田公司都表现得非常出色,不仅发挥了自己的优势,还非常透彻和精准地理解了新的目标顾客:美国消费者。他们智胜一筹,通过一个执行得很好的计划占领了先机,胜过了竞争对手们。
+
+这个故事 **听上去** 很厉害,但是实际情况没有这么简单。
+
+没错,本田公司 **确实** 是想进入美国摩托车市场。他们最初是想 [效仿在美国的竞争对手][4],也制造美国人似乎更喜欢的大型摩托车。但是大型摩托车并不是本田公司的强项,他们生产的大型摩托车存在可靠性上的问题。更糟的是,他们的产品和市面上的其它产品没有什么差别,所以并不能脱颖而出。简单来说,他们的产品销售额表现平平。
+
+但是在一次奇妙的巧合里,本田公司出访美国的日本代表们带了几辆自己开的摩托车。这些摩托车和本田公司试图在美国市场上销售的摩托车完全不同,它们更为小巧灵活、不那么笨重、更有效率,并且一般来说也更便宜。西尔斯公司(LCTT 译注:美国零售业巨头)注意到了这些小巧的摩托车,并且和日本代表达成了一项协议,让西尔斯公司可以在他们在美国的商店里出售这种被称为“超级幼兽”的新型摩托车。
+
+剩下的故事已经载入史册。超级幼兽成为了 [史上最畅销的机动车][5],并且本田公司 [至今仍然在生产超级幼兽][6]。
+
+事后看来,将超级幼兽带到美国的一连串事件似乎很有逻辑,近乎无聊了。但是本田公司的成功和“巧妙的计划”没有什么关系,而更应该归功于一些(大多数人不愿意承认的)机缘巧合。
+
+### 开放(并且混乱的)创新
+
+机构(特别是领导们)喜欢把成功说成是一件计划之内的事情 - 好像成功人士可以驾驭混乱,并且几乎可以预测未来。但是这些言论都是事后诸葛亮罢了,他们在讲述自己充满偶然性的经历的时候会刻意将无序的事情整理一番,对于毫无确定性的事情也会说“我们就是想要那么做的”。
+
+但是正如我前面说的,我们不应该相信这些故事是创新过程的真实还原,也不应该在这种错误的假设的基础之上去构建未来的方案或者实验。
+
+试想有另一家摩托车制造商想要复制本田公司在超级幼兽上的成功,就逐字逐句地照搬波士顿咨询总结的故事。由于本田公司成功的 **故事** 听上去是如此有逻辑,并且是线性的,这家新公司也许会假定他们可以通过类似的程序得到同样的结果:制定目标、谋划行动,然后针对可预期的结果进行执行。但是我们知道本田公司并不是真的靠这种“制定、谋划、执行”的方式赢得他们的市场份额的。他们是通过灵活性和一点运气获得成功的 - 更像是“尝试、学习、修改”。
+
+当我们可以真正理解并且接受“创新过程是混乱的”这个事实的时候,我们就可以换种方式思考如何让我们的机构实现创新了。与其将资源浪费在预先制定的计划上,**强迫** 创新以一种线性时间线的方式发生,我们不如去构建一些开放并且敏捷的机构,可以 **在创新发生的时候做出及时的响应**。
+
+几年前红帽公司发布一个包含了重大技术升级的产品的新版本的时候,我就看到了这样的方法。[红帽企业级 Linux 5.4 版本][8] 首次完全支持了一种被称为"基于内核的虚拟机"(KVM)的技术。这对于我们来说是一个重大的创新,不仅可以为顾客和合作伙伴带来巨大的价值,也有望为开源社区带来巨大的价值。
+
+这项技术正在快速演进。幸运的事,因为我们是一个开放的机构,我们具有足够的适应能力,可以在这项创新发生的时候做出响应,从而帮助我们的顾客和合作伙伴可以更好地利用它。这项技术太重要了,并且竞争格局也太不稳定了,以至于我们没有理由要等到像 6.0 版本这样的里程碑时刻才出手。
+
+如果你回看红帽企业级 Linux [已经存档的发行说明][9],你会发现它读起来并不像一个典型的软件创新的故事。一次改变游戏规则的进展突然出现在一个没有预测到的、并不起眼的时刻(5.4 版本),而不是一个事先计划好的重要里程碑时刻(6.0 版本)。事后看来,我们现在知道 KVM 这种“大爆炸”级别的进步是足够担得起 “6.0 版本”这样的里程碑式的名字的。但是创新并不是按照这样的剧本发生的。
+
+不要误解我,机构仍然需要保持出色的运转,高效完成执行性的任务。但是 [不同的挑战需要不同的方法去应对][10],我们需要能够更好地建立灵活的机构,以及对 [意想不到和不可知的事情][11] 能够做出更好的响应。
+
+一个在计划工作(以及按照计划执行)上做得很出色的公司很可能会得到他们计划要得到的结果。但是如果成功还取决于我们没有预测或者无法预测的的事情,那么仅仅精准地按照计划执行是不是就不够了?
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/open-organization/19/6/innovation-delusion
+
+作者:[Jim Whitehurst][a]
+选题:[lujun9972][b]
+译者:[chen-ni](https://github.com/chen-ni)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/jwhitehurst/users/jwhitehurst/users/n8chz/users/dhdeans
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation)
+[2]: https://www.youtube.com/watch?v=8MCbJmZQM9c
+[3]: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/235319/0532.pdf
+[4]: http://www.howardyu.org/the-revolutionary-approach-honda-took-to-rise-above-competition/
+[5]: https://autoweek.com/article/motorcycles/first-ride-honda-super-cub-c125-abs-all-new-and-still-super-cute
+[6]: https://www.autoblog.com/2019/02/13/2019-honda-super-cub-first-ride-review/
+[7]: https://opensource.com/open-organization/18/3/try-learn-modify
+[8]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.4_release_notes/index
+[9]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/5.0_release_notes/index
+[10]: https://opensource.com/open-organization/19/4/managed-enabled-empowered
+[11]: https://www.linkedin.com/pulse/how-plan-world-full-unknowns-jim-whitehurst/
diff --git a/translated/tech/20190626 Tracking down library injections on Linux.md b/translated/tech/20190626 Tracking down library injections on Linux.md
new file mode 100644
index 0000000000..b747c959bd
--- /dev/null
+++ b/translated/tech/20190626 Tracking down library injections on Linux.md
@@ -0,0 +1,131 @@
+[#]: collector: (lujun9972)
+[#]: translator: (LuuMing)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Tracking down library injections on Linux)
+[#]: via: (https://www.networkworld.com/article/3404621/tracking-down-library-injections-on-linux.html)
+[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
+
+追溯 Linux 上的库注入
+======
+库注入在 Linux 上不如 Windows 上常见,但它仍然是一个问题。下来看看它们如何工作的,以及如何鉴别它们。
+![Sandra Henry-Stocker][1]
+
+尽管在 Linux 系统上几乎见不到,但库(Linux 上的共享目标文件)注入仍是一个严峻的威胁。在采访了来自 AT&T 公司 Alien 实验室的 Jaime Blasco 后,我更加意识到了其中一些攻击是多么的易实施。
+
+在这篇文章中,我会介绍一种攻击方法和它的几种检测手段。我也会提供一些展示攻击细节的链接和一些检测工具。首先,引入一个小小的背景。
+
+### 共享库漏洞
+
+DLL 和 .so 文件都是允许代码(有时候是数据)被不同的进程共享的共享库文件。公用的代码可以放进一个文件中使得每个需要它的进程可以重新使用而不是多次被重写。这也促进了对公用代码的管理。
+
+Linux 进程经常使用这些共享库。`ldd`(显示共享对象依赖)命令可以为任何程序显示共享库。这里有一些例子:
+
+```
+$ ldd /bin/date
+ linux-vdso.so.1 (0x00007ffc5f179000)
+ libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f02bea15000)
+ /lib64/ld-linux-x86-64.so.2 (0x00007f02bec3a000)
+$ ldd /bin/netstat
+ linux-vdso.so.1 (0x00007ffcb67cd000)
+ libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f45e5d7b000)
+ libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f45e5b90000)
+ libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f45e5b1c000)
+ libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f45e5b16000)
+ /lib64/ld-linux-x86-64.so.2 (0x00007f45e5dec000)
+ libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f45e5af5000)
+```
+
+`linux-vdso.so.1` (在一些系统上也许会有不同的名字)是内核自动映射到每个进程地址空间的文件。它的工作是找到并定位进程所需的其他共享库。
+
+利用这种库加载机制的一种方法是通过使用 `LD_PRELOAD` 环境变量。正如 Jaime Blasco 在他的研究中所解释的那样,“`LD_PRELOAD` 是最简单且最受欢迎的方法来在进程启动时加载共享库。可以使用共享库的路径配置环境变量,以便在加载其他共享对象之前加载该共享库。”
+
+为了展示有多简单,我创建了一个极其简单的共享库并且赋值给我的(之前不存在) `LD_PRELOAD` 环境变量。之后我使用 `ldd` 命令查看它对于常用 Linux 命令的影响。
+
+```
+$ export LD_PRELOAD=/home/shs/shownum.so
+$ ldd /bin/date
+ linux-vdso.so.1 (0x00007ffe005ce000)
+ /home/shs/shownum.so (0x00007f1e6b65f000) <== there it is
+ libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1e6b458000)
+ /lib64/ld-linux-x86-64.so.2 (0x00007f1e6b682000)
+```
+
+注意,仅仅将新的库赋给 `LD_PRELOAD` 就影响到了运行的任何程序。
+
+通过设置 `LD_PRELOAD` 指定的共享库首先被加载(紧随 linux-vdso.so.1),这些库可以极大程度上改变一个进程。例如,它们可以重定向系统调用到它们自己的资源,或对程序运行的行为方式进行意想不到的更改。
+
+### osquery 工具可以检测库注入
+
+`osquery` 工具(可以在 [osquery.io][4]下载)提供了一个非常独特的方式来照看 Linux 系统。它基本上将操作系统表示为高性能关系数据库。然后,也许你会猜到,这就意味着它可以用来查询并且生成 SQL 表,该表提供了诸如以下的详细信息:
+
+ * 运行中的进程
+ * 加载的内核模块
+ * 进行的网络链接
+
+一个提供了进程信息的内核表叫做 `process_envs`。它提供了各种进程使用环境变量的详细信息。Jaime Blasco 提供了一个相当复杂的查询,可以使用 `osquery` 标识使用 `LD_PRELOAD` 的进程。
+
+注意,这个查询是从 `process_envs` 表中获取数据。攻击 ID(T1055)参考 [Mitre 对攻击方法的解释][5]。
+
+```
+SELECT process_envs.pid as source_process_id, process_envs.key as environment_variable_key, process_envs.value as environment_variable_value, processes.name as source_process, processes.path as file_path, processes.cmdline as source_process_commandline, processes.cwd as current_working_directory, 'T1055' as event_attack_id, 'Process Injection' as event_attack_technique, 'Defense Evasion, Privilege Escalation' as event_attack_tactic FROM process_envs join processes USING (pid) WHERE key = 'LD_PRELOAD';
+```
+
+注意 `LD_PRELOAD` 环境变量有时是合法使用的。例如,各种安全监控工具可能会使用到它,因为开发人员需要进行故障排除、调试或性能分析。然而,它的使用仍然很少见,应当加以防范。
+
+同样值得注意的是 osquery 可以交互使用或是作为定期查询的守护进程去运行。了解更多请查阅文章末尾给出的参考。
+
+你也能够通过查看用户的环境设置定位到 `LD_PRELOAD` 的使用。如果 `LD_PRELOAD` 使用用户账户配置,你可以使用这样的命令来查看(在认证了个人身法之后):
+
+```
+$ env | grep PRELOAD
+LD_PRELOAD=/home/username/userlib.so
+```
+
+如果你之前没有听说过 osquery,别太在意。它正在成为一个更受欢迎的工具。事实上就在上周,Linux 基金会宣布用新的 [osquery 基金会][6]支持 osquery 社区。
+
+#### 总结
+
+尽管库注入是一个严重的威胁,但了解一些优秀的工具来帮助你检测它是否存在是很有帮助的。
+
+#### 扩展阅读
+
+重要的参考和工具的链接:
+
+ * [用 osquery 追寻 Linux 库注入][7],AT&T 网络安全
+ * [Linux:我的内存怎么了?][8],TrustedSec
+ * [osquery 下载网站][4]
+ * [osquery 关系模式][9]
+ * [osqueryd(osquery 守护进程)][10]
+ * [Mitre 的攻击框架][11]
+ * [新的 osquery 基金会宣布][6]
+
+在 [Facebook][12] 和 [LinkedIn][13] 上加入网络会议参与讨论。
+
+--------------------------------------------------------------------------------
+
+via: https://www.networkworld.com/article/3404621/tracking-down-library-injections-on-linux.html
+
+作者:[Sandra Henry-Stocker][a]
+选题:[lujun9972][b]
+译者:[LuuMing](https://github.com/LuuMing)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.networkworld.com/author/Sandra-Henry_Stocker/
+[b]: https://github.com/lujun9972
+[1]: https://images.idgesg.net/images/article/2019/06/dll-injection-100800196-large.jpg
+[2]: https://www.youtube.com/playlist?list=PL7D2RMSmRO9J8OTpjFECi8DJiTQdd4hua
+[3]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
+[4]: https://osquery.io/
+[5]: https://attack.mitre.org/techniques/T1055/
+[6]: https://www.linuxfoundation.org/press-release/2019/06/the-linux-foundation-announces-intent-to-form-new-foundation-to-support-osquery-community/
+[7]: https://www.alienvault.com/blogs/labs-research/hunting-for-linux-library-injection-with-osquery
+[8]: https://www.trustedsec.com/2018/09/linux-hows-my-memory/
+[9]: https://osquery.io/schema/3.3.2
+[10]: https://osquery.readthedocs.io/en/stable/deployment/configuration/#schedule
+[11]: https://attack.mitre.org/
+[12]: https://www.facebook.com/NetworkWorld/
+[13]: https://www.linkedin.com/company/network-world