From 2f704301af7ac3ee6c8a4cdbed07424a86d9237b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 Feb 2020 22:08:15 +0800 Subject: [PATCH 01/15] PUB @geekpi https://linux.cn/article-11863-1.html --- ...0200129 4 cool new projects to try in COPR for January 2020.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20200129 4 cool new projects to try in COPR for January 2020.md (100%) diff --git a/translated/tech/20200129 4 cool new projects to try in COPR for January 2020.md b/published/20200129 4 cool new projects to try in COPR for January 2020.md similarity index 100% rename from translated/tech/20200129 4 cool new projects to try in COPR for January 2020.md rename to published/20200129 4 cool new projects to try in COPR for January 2020.md From 4a245c48a2e514bbccdc6710ab2347fb6827527f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 Feb 2020 23:08:57 +0800 Subject: [PATCH 02/15] PRF @qianmingtian --- ...0200131 Intro to the Linux command line.md | 90 ++++++++----------- 1 file changed, 39 insertions(+), 51 deletions(-) diff --git a/translated/tech/20200131 Intro to the Linux command line.md b/translated/tech/20200131 Intro to the Linux command line.md index 1b49581491..3a10385b86 100644 --- a/translated/tech/20200131 Intro to the Linux command line.md +++ b/translated/tech/20200131 Intro to the Linux command line.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (qianmingtian) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Intro to the Linux command line) @@ -10,71 +10,59 @@ Linux 命令行简介 ====== -下面是一些针对刚开始使用 Linux 命令行的人的热身练习。警告:它可能会上瘾。[Sandra Henry-Stocker / Linux][1] [(CC0)][2] +> 下面是一些针对刚开始使用 Linux 命令行的人的热身练习。警告:它可能会上瘾。 -如果你是 Linux 新手,或者从来没有花时间研究过命令行,你可能不会理解为什么这么多 Linux 爱好者坐在舒适的桌面使用大量工具与应用时键入命令会产生兴奋。在这篇文章中,我们将快速浏览一下命令行的奇妙之处,看看能否让你着迷。 +![](https://images.idgesg.net/images/article/2020/01/cmd_linux-control_linux-logo_-100828420-large.jpg) -首先,要使用命令行,你必须打开一个命令工具(也称为“命令提示符”)。如何做到这一点将取决于你运行的 Linux 版本。例如,在 RedHat 上,你可能会在屏幕顶部看到一个 Activities 选项卡,它将打开一个选项列表和一个用于输入命令的小窗口(如 “cmd” ,它将为你打开窗口)。在 Ubuntu 和其他一些版本中,你可能会在屏幕左侧看到一个小的终端图标。在许多系统上,你可以同时按 **Ctrl+Alt+t** 键打开命令窗口。 +如果你是 Linux 新手,或者从来没有花时间研究过命令行,你可能不会理解为什么这么多 Linux 爱好者坐在舒适的桌面前兴奋地输入命令来使用大量工具和应用。在这篇文章中,我们将快速浏览一下命令行的奇妙之处,看看能否让你着迷。 + +首先,要使用命令行,你必须打开一个命令工具(也称为“命令提示符”)。如何做到这一点将取决于你运行的 Linux 版本。例如,在 RedHat 上,你可能会在屏幕顶部看到一个 “Activities” 选项卡,它将打开一个选项列表和一个用于输入命令的小窗口(类似 “cmd” 为你打开的窗口)。在 Ubuntu 和其他一些版本中,你可能会在屏幕左侧看到一个小的终端图标。在许多系统上,你可以同时按 `Ctrl+Alt+t` 键打开命令窗口。 如果你使用 PuTTY 之类的工具登录 Linux 系统,你会发现自己已经处于命令行界面。 -[][3] - -由 HPE 赞助的 BrandPost - -[走消费存储智能化之路][3] - -将 HPE 存储的灵活性和经济性与 HPE GreenLake 结合起来,高效地运转你的 IT 部门。 - -一旦你得到你的命令行窗口,你会发现自己坐在一个提示符面前。它可能只是一个 **$** 或者像 “**user@system:~$**” 这样的东西,但它意味着系统已经准备好为你运行命令了。 +一旦你得到你的命令行窗口,你会发现自己坐在一个提示符面前。它可能只是一个 `$` 或者像 `user@system:~$` 这样的东西,但它意味着系统已经准备好为你运行命令了。 一旦你走到这一步,就应该开始输入命令了。下面是一些要首先尝试的命令,以及这里是一些特别有用的命令的 [PDF][4] 和适合打印和做成卡片的双面命令手册。 -``` -命令 用途 -pwd 显示我在文件系统中的位置(在最初进入系统时运行将显示主目录) -ls 列出我的文件 -ls-a 列出我更多的文件(包括隐藏文件) -ls-al 列出我的文件,并且包含很多详细信息(包括日期、文件大小和权限) -who 告诉我谁登录了(如果只有你,不要失望) -date 日期提醒我今天是星期几(也显示时间) -ps 列出我正在运行的进程(可能只是你的shell和“ps”命令) -``` + +| 命令 | 用途 | +|---|---| +| `pwd` | 显示我在文件系统中的位置(在最初进入系统时运行将显示主目录) | +| `ls` | 列出我的文件 | +| `ls-a` | 列出我更多的文件(包括隐藏文件) | +| `ls-al` | 列出我的文件,并且包含很多详细信息(包括日期、文件大小和权限) | +| `who` | 告诉我谁登录了(如果只有你,不要失望) | +| `date` | 日期提醒我今天是星期几(也显示时间) | +| `ps` | 列出我正在运行的进程(可能只是你的 shell 和 `ps` 命令) | 一旦你从命令行角度习惯了 Linux 主目录之后,就可以开始探索了。也许你会准备好使用以下命令在文件系统中闲逛: -``` -命令 用途 -cd /tmp 移动到其他文件夹(本例中,打开 /tem 文件夹) -ls 列出当前位置的文件 -cd 回到主目录(不带参数的 cd 总是能将你带回到主目录) -cat .bashrc 显示文件的内容(本例中显示 .bashrc 文件的内容) -history 显示最近执行的命令 -echo hello 跟自己说 “hello” -cal 显示当前月份的日历 -``` +| 命令 | 用途 | +|---|---| +| `cd /tmp` | 移动到其他文件夹(本例中,打开 `/tmp` 文件夹) | +| `ls` | 列出当前位置的文件 | +| `cd` | 回到主目录(不带参数的 `cd` 总是能将你带回到主目录) | +| `cat .bashrc` | 显示文件的内容(本例中显示 `.bashrc` 文件的内容) | +| `history` | 显示最近执行的命令 | +| `echo hello` | 跟自己说 “hello” | +| `cal` | 显示当前月份的日历 | -要了解为什么高级 Linux 用户如此喜欢命令行,你将需要尝试其他一些功能,例如重定向和管道。 重定向是当你获取命令的输出并将其放到文件中而不是在屏幕上显示时。管道是指你将一个命令的输出发送给另一条将以某种方式对其进行操作的命令。这是可以尝试的命令: +要了解为什么高级 Linux 用户如此喜欢命令行,你将需要尝试其他一些功能,例如重定向和管道。“重定向”是当你获取命令的输出并将其放到文件中而不是在屏幕上显示时。“管道”是指你将一个命令的输出发送给另一条将以某种方式对其进行操作的命令。这是可以尝试的命令: -[[通过注册 Network World 简讯来获得定期安排的详解]][5] +| 命令 | 用途 | +|---|---| +| `echo “echo hello” > tryme` | 创建一个新的文件并将 “echo hello” 写入该文件 | +| `chmod 700 tryme` | 使新建的文件可执行 | +| `tryme` | 运行新文件(它应当运行文件中包含的命令并且显示 “hello” )| +| `ps aux` | 显示所有运行中的程序 | +| `ps aux | grep $USER` | 显示所有运行中的程序,但是限制输出的内容包含你的用户名 | +| `echo $USER` | 使用环境变量显示你的用户名 | +| `whoami` | 使用命令显示你的用户名 | +| `who | wc -l` | 计数所有当前登录的用户数目 | -``` -命令 用途 -echo “echo hello” > tryme 创建一个新的文件并将 “echo hello” 写入该文件 -chmod 700 tryme 使新建的文件可执行 -tryme 运行新文件(它应当运行文件中包含的命令并且显示 “hello” ) -ps aux 显示所有运行中的程序 -ps aux | grep $USER 显示所有运行中的程序,但是限制输出的内容包含你的用户名 -echo $USER 使用环境变量显示你的用户名 -whoami 使用命令显示你的用户名 -who | wc -l 计数所有当前登录的用户数目 -``` ### 总结 -一旦你习惯了基本命令,就可以探索其他命令并尝试编写脚本。 你可能会发现 Linux 比你想象的要强大并且好用得多。 - -加入 [Facebook][6] 和 [LinkedIn][7] 上的 Network World 社区,来评论最热门的话题。 - +一旦你习惯了基本命令,就可以探索其他命令并尝试编写脚本。 你可能会发现 Linux 比你想象的要强大并且好用得多. -------------------------------------------------------------------------------- @@ -83,7 +71,7 @@ via: https://www.networkworld.com/article/3518440/intro-to-the-linux-command-lin 作者:[Sandra Henry-Stocker][a] 选题:[lujun9972][b] 译者:[qianmingtian][c] -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 78ed14711048df0326d9b0017aa89671ffc857cb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 Feb 2020 23:10:26 +0800 Subject: [PATCH 03/15] PUB @qianmingtian https://linux.cn/article-11864-1.html --- .../20200131 Intro to the Linux command line.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20200131 Intro to the Linux command line.md (98%) diff --git a/translated/tech/20200131 Intro to the Linux command line.md b/published/20200131 Intro to the Linux command line.md similarity index 98% rename from translated/tech/20200131 Intro to the Linux command line.md rename to published/20200131 Intro to the Linux command line.md index 3a10385b86..49e670529e 100644 --- a/translated/tech/20200131 Intro to the Linux command line.md +++ b/published/20200131 Intro to the Linux command line.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (qianmingtian) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-11864-1.html) [#]: subject: (Intro to the Linux command line) [#]: via: (https://www.networkworld.com/article/3518440/intro-to-the-linux-command-line.html) [#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/) From 04c91b0dffddab6ca05767eef63a58ffba7a5268 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 Feb 2020 23:12:49 +0800 Subject: [PATCH 04/15] PRF --- published/20200131 Intro to the Linux command line.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/published/20200131 Intro to the Linux command line.md b/published/20200131 Intro to the Linux command line.md index 49e670529e..49550210fe 100644 --- a/published/20200131 Intro to the Linux command line.md +++ b/published/20200131 Intro to the Linux command line.md @@ -29,8 +29,8 @@ Linux 命令行简介 |---|---| | `pwd` | 显示我在文件系统中的位置(在最初进入系统时运行将显示主目录) | | `ls` | 列出我的文件 | -| `ls-a` | 列出我更多的文件(包括隐藏文件) | -| `ls-al` | 列出我的文件,并且包含很多详细信息(包括日期、文件大小和权限) | +| `ls -a` | 列出我更多的文件(包括隐藏文件) | +| `ls -al` | 列出我的文件,并且包含很多详细信息(包括日期、文件大小和权限) | | `who` | 告诉我谁登录了(如果只有你,不要失望) | | `date` | 日期提醒我今天是星期几(也显示时间) | | `ps` | 列出我正在运行的进程(可能只是你的 shell 和 `ps` 命令) | @@ -51,7 +51,7 @@ Linux 命令行简介 | 命令 | 用途 | |---|---| -| `echo “echo hello” > tryme` | 创建一个新的文件并将 “echo hello” 写入该文件 | +| `echo "echo hello" > tryme` | 创建一个新的文件并将 “echo hello” 写入该文件 | | `chmod 700 tryme` | 使新建的文件可执行 | | `tryme` | 运行新文件(它应当运行文件中包含的命令并且显示 “hello” )| | `ps aux` | 显示所有运行中的程序 | From 3fcff2f63b6b5e67b14201908e666a4d18383c71 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:04:30 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200207=20Best=20O?= =?UTF-8?q?pen=20Source=20eCommerce=20Platforms=20to=20Build=20Online=20Sh?= =?UTF-8?q?opping=20Websites?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200207 Best Open Source eCommerce Platforms to Build Online Shopping Websites.md --- ...forms to Build Online Shopping Websites.md | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 sources/tech/20200207 Best Open Source eCommerce Platforms to Build Online Shopping Websites.md diff --git a/sources/tech/20200207 Best Open Source eCommerce Platforms to Build Online Shopping Websites.md b/sources/tech/20200207 Best Open Source eCommerce Platforms to Build Online Shopping Websites.md new file mode 100644 index 0000000000..efb70a3267 --- /dev/null +++ b/sources/tech/20200207 Best Open Source eCommerce Platforms to Build Online Shopping Websites.md @@ -0,0 +1,170 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Best Open Source eCommerce Platforms to Build Online Shopping Websites) +[#]: via: (https://itsfoss.com/open-source-ecommerce/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) + +Best Open Source eCommerce Platforms to Build Online Shopping Websites +====== + +In an earlier article, I listed some of the [best open-source CMS][1] options available out there. These CMS software, as the name suggests, are more suitable for content focused websites. + +But what if you want to build your own online shopping websites? Thankfully, we have some good open source eCommerce solutions that you can deploy on your own Linux server. + +These eCommerce software are tailored for the sole purpose of giving you a shopping website. So they have essential features like inventory management, product listings, cart, checkout, wishlisting and option to integrate a payment solution. + +_Please note his is not an in-depth review article. So, I insist that you should try the platforms mentioned in this list to know more about them._ + +### Best Open Source eCommerce Platforms + +![][2] + +There are many open source eCommerce software available. I have filtered the ones which are actively maintained so that your shopping website doesn’t suffer because of obsolete or maintained software stack. + +_**It is also worth noting that the list here is in no particular order of ranking.**_ + +#### 1\. nopCommerce + +![][3] + +nopCommerce is a free and open-source eCommerce platform based on [ASP.NET Core][4]. If you were looking for a PHP-based solution – you can skip to the next option on the list. + +The user interface of its admin panel is clean and easy to use. If you’ve used OpenCart – you might feel the similarity (but I’m not complaining). By default, it has got all the essential features while offering a responsive design for mobile users as well. + +You get access to an [official marketplace][5] where you can get supported themes and extensions. You can opt for premium support or manage it yourself for free. + +To get started, you can download the package with its source code from its [official download page][6] if you want to customize it and deploy it. In either case, you can also download the complete package to get it installed on a web server quickly. You can check out their [GitHub page][7] and the official website to learn more. + +[nopCommerce][8] + +#### 2\. OpenCart + +![][9] + +OpenCart is a quite popular PHP-based eCommerce platform. Personally, I’ve worked on it for a project and the experience was good enough – if not excellent. + +You may find it that it isn’t super actively maintained – but it’s still there and being utilized by a lot of web developers. You get support for a lot of extensions while having most of the essential features baked right into it. + +For some, it may not be the best “modern” eCommerce platform but if you want a good open-source PHP-based alternative, it is worth a try. In most of the web hosting platforms with one-click app installation support, OpenCart should be available to setup. To learn more about it, you can head to its official website and check out the [GitHub page][10]. + +[OpenCart][11] + +#### 3\. PrestaShop + +![][12] + +PrestaShop is yet another open-source eCommerce platform that you can utilize. + +An actively maintained open-source solution with an official marketplace for [themes][13] and [extensions][14]. Unlike OpenCart, you may not find it available as a one-click app on hosting services – but you can download it from its official website and it is quite easy to set it up. You can also refer to their [installation guide][15] if you need help. + +It features a lot of options while being easy to use at the same time. I find a lot of users trying out PrestaShop – you should take a look as well! + +You can also take a look at their [GitHub page][16] to learn more. + +[PrestaShop][17] + +#### 4\. WooCommerce + +![][18] + +If you want to utilize [WordPress][19] for your eCommerce website, WooCommerce will help you out. + +Technically, you’re using WordPress as the platform and WooCommerce as a plugin/extension to enable the features needed for an eCommerce website. Potentially, a lot of people (web devs) know how to use WordPress – so it will be easier to learn/create using WooCommerce, I think. + +You shouldn’t have a problem using WordPress, being one of the [best open source website builder][1] out there. It’s easy to use, reliable and supports a ton of extensions and integrations for your online store. + +The best part about using WooCommerce is its flexibility. You get tons of choices for the design and extensions of your online store. It’s worth checking out! You can also head to its [GitHub page][20]. + +[WooCommerce][21] + +#### 5\. Zen Cart + +![][22] + +This may not be a modern eCommerce platform but one of the best open-source solutions. If you’re a fan of old school templates (HTML-based primarily) and do not need a whole lot of extensions but just the basics, you can try it out. + +Personally, I wouldn’t recommend this for a new project – but just because it is still an active platform, feel free to experiment on it if you like it. + +You can find the project on [SourceForge][23] as well. + +[Zen Cart][24] + +#### 6\. Magento + +![Image Credits: Magestore][25] + +An Adobe-owned open-source eCommerce platform that is potentially better than WordPress (depending on your preferences obviously). + +Magento is completely tailored for e-commerce applications – so you will find a lot of essential features easy to use while offering advanced customizations as well. + +However, when utilizing the open-source edition, you might miss some of the features available in their hosted offering. You can refer to their [comparison guide][26] for details. Of course, you can self-host it but if you want a managed hosting support, that’s available as well. + +You can also take a look at their [GitHub page][27] to learn more. + +[Magento][28] + +#### 7\. Drupal + +![Drupal][29] + +Drupal is another open-source CMS platform that is suitable for creating an eCommerce website. + +I’ve never used it – so I’m not really sure of its flexibility but looking at its list of modules (Extensions) and themes available on its official site, it looks like you can do almost everything you need for an eCommerce platform easily. + +You should be able to install it easily on any web server just like you install WordPress – so give it a try and see how it goes. You can even download the latest releases and check out the project on their [download page][30]. + +[Drupal][31] + +**Wrapping Up** + +I’m sure there are a few more open-source eCommerce platforms out there – however, I haven’t come across anything that’s better than what I’ve listed above (yet). + +If you think that I missed one of your favorites that deserves a mention, let me know in the comments. Also, feel free to share your experience and thoughts about the open-source eCommcerce platforms available in the comments section below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/open-source-ecommerce/ + +作者:[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://itsfoss.com/open-source-cms/ +[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/open-source-eCommerce.png?ssl=1 +[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/01/nopCommerce.png?ssl=1 +[4]: https://en.wikipedia.org/wiki/ASP.NET_Core +[5]: https://www.nopcommerce.com/marketplace +[6]: https://www.nopcommerce.com/download-nopcommerce +[7]: https://github.com/nopSolutions/nopCommerce +[8]: https://www.nopcommerce.com/ +[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/01/opencart.jpg?ssl=1 +[10]: https://github.com/opencart/opencart +[11]: https://www.opencart.com/ +[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/01/prestashop.jpg?ssl=1 +[13]: https://addons.prestashop.com/en/3-templates-prestashop +[14]: https://addons.prestashop.com/en/ +[15]: http://doc.prestashop.com/display/PS17/Installing+PrestaShop +[16]: https://github.com/PrestaShop/PrestaShop +[17]: https://www.prestashop.com/en +[18]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/01/woocommerce.jpg?ssl=1 +[19]: https://wordpress.org/ +[20]: https://github.com/woocommerce/woocommerce +[21]: https://woocommerce.com/ +[22]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/01/Zen-cart.jpg?ssl=1 +[23]: https://sourceforge.net/projects/zencart/ +[24]: https://www.zen-cart.com/ +[25]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/01/magento.jpg?ssl=1 +[26]: https://magento.com/compare-open-source-and-magento-commerce +[27]: https://github.com/magento +[28]: https://magento.com/ +[29]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/01/drupal.png?ssl=1 +[30]: https://www.drupal.org/project/drupal +[31]: https://www.drupal.org/industries/ecommerce From 73bbb3414a8bcf578fece9a1b957d3953ef2cde9 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:05:03 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200207=20What=20i?= =?UTF-8?q?s=20WireGuard=3F=20Why=20Linux=20Users=20Going=20Crazy=20Over?= =?UTF-8?q?=20it=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200207 What is WireGuard- Why Linux Users Going Crazy Over it.md --- ...rd- Why Linux Users Going Crazy Over it.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sources/tech/20200207 What is WireGuard- Why Linux Users Going Crazy Over it.md diff --git a/sources/tech/20200207 What is WireGuard- Why Linux Users Going Crazy Over it.md b/sources/tech/20200207 What is WireGuard- Why Linux Users Going Crazy Over it.md new file mode 100644 index 0000000000..f80298dbb7 --- /dev/null +++ b/sources/tech/20200207 What is WireGuard- Why Linux Users Going Crazy Over it.md @@ -0,0 +1,98 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (What is WireGuard? Why Linux Users Going Crazy Over it?) +[#]: via: (https://itsfoss.com/wireguard/) +[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) + +What is WireGuard? Why Linux Users Going Crazy Over it? +====== + +From normal Linux users to Linux creator [Linus Torvalds][1], everyone is in awe of WireGuard. What is WireGuard and what makes it so special? + +### What is WireGuard? + +![][2] + +[WireGuard][3] is an easy to configure, fast, and secure open source [VPN][4] that utilizes state-of-the-art cryptography. It’s aim is to provide a faster, simpler and leaner general purpose VPN that can be easily deployed on low-end devices like Raspberry Pi to high-end servers. + +Most of the other solutions like [IPsec][5] and OpenVPN were developed decades ago. Security researcher and kernel developer Jason Donenfeld realized that they were slow and difficult to configure and manage properly. + +This made him create a new open source VPN protocol and solution which is faster, secure easier to deploy and manage. + +WireGuard was originally developed for Linux but it is now available for Windows, macOS, BSD, iOS and Android. It is still under heavy development. + +### Why is WireGuard so popular? + +![][6] + +Apart from being a cross-platform, one of the biggest plus point for WireGuard is the ease of deployment. Configuring and deploying WireGuard is as easy as configuring and using SSH. + +Look at [WireGuard set up guide][7]. You install WireGuard, generate public and private keys (like SSH), set up firewall rules and start the service. Now compare it to the [OpenVPN set up guide][8]. There are way too many things to do here. + +Another good thing about WireGuard is that it has a lean codebase with just 4000 lines of code. Compare it to 100,000 lines of code of [OpenVPN][9] (another popular open source VPN). It is clearly easier to debug WireGuard. + +Don’t go by its simplicity. WireGuard supports all the state-of-the-art cryptography like like the [Noise protocol framework][10], [Curve25519][11], [ChaCha20][12], [Poly1305][13], [BLAKE2][14], [SipHash24][15], [HKDF][16], and secure trusted constructions. + +Since WireGuard runs in the [kernel space][17], it provides secure networking at a high speed. + +These are some of the reasons why WireGuard has become increasingly popular. Linux creator Linus Torvalds loves WireGuard so much that he is merging it in the [Linux Kernel 5.6][18]: + +> Can I just once again state my love for it and hope it gets merged soon? Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art. +> +> Linus Torvalds + +### If WireGuard is already available, then what’s the fuss about including it in Linux kernel? + +This could be confusing to new Linux users. You know that you can install and configure a WireGuard VPN server on Linux but then you also read the news that Linux Kernel 5.6 is going to include WireGuard. Let me explain it to you. + +At present, you can install WireGuard on Linux as a [kernel module][19]. Regular applications like VLC, GIMP etc are installed on top of the Linux kernel (in [user space][20]), not inside it. + +When you install WireGuard as a kernel module, you are basically modifying the Linux kernel on your own and add some code to it. Starting kernel 5.6, you won’t need manually add the kernel module. It will be included in the kernel by default. + +The inclusion of WireGuard in Kernel 5.6 will most likely [extend the adoption of WireGuard and thus change the current VPN scene][21]. + +**Conclusion** + +WireGuard is gaining popularity for the good reasons. Some of the popular [privacy focused VPNs][22] like [Mullvad VPN][23] are already using WireGuard and the adoption is likely to grow in the near future. + +I hope you have a slightly better understanding of WireGuard. Your feedback is welcome, as always. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/wireguard/ + +作者:[Abhishek Prakash][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/linus-torvalds-facts/ +[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/02/wireguard.png?ssl=1 +[3]: https://www.wireguard.com/ +[4]: https://en.wikipedia.org/wiki/Virtual_private_network +[5]: https://en.wikipedia.org/wiki/IPsec +[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/wireguard-logo.png?ssl=1 +[7]: https://www.linode.com/docs/networking/vpn/set-up-wireguard-vpn-on-ubuntu/ +[8]: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04 +[9]: https://openvpn.net/ +[10]: https://noiseprotocol.org/ +[11]: https://cr.yp.to/ecdh.html +[12]: https://cr.yp.to/chacha.html +[13]: https://cr.yp.to/mac.html +[14]: https://blake2.net/ +[15]: https://131002.net/siphash/ +[16]: https://eprint.iacr.org/2010/264 +[17]: http://www.linfo.org/kernel_space.html +[18]: https://itsfoss.com/linux-kernel-5-6/ +[19]: https://wiki.archlinux.org/index.php/Kernel_module +[20]: http://www.linfo.org/user_space.html +[21]: https://www.zdnet.com/article/vpns-will-change-forever-with-the-arrival-of-wireguard-into-linux/ +[22]: https://itsfoss.com/best-vpn-linux/ +[23]: https://mullvad.net/en/ From d18ce478b9623bb5b33521f28211c591da164fcd Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:05:36 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200207=20NVIDIA?= =?UTF-8?q?=E2=80=99s=20Cloud=20Gaming=20Service=20GeForce=20NOW=20Shamele?= =?UTF-8?q?ssly=20Ignores=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200207 NVIDIA-s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux.md --- ...e GeForce NOW Shamelessly Ignores Linux.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/tech/20200207 NVIDIA-s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux.md diff --git a/sources/tech/20200207 NVIDIA-s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux.md b/sources/tech/20200207 NVIDIA-s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux.md new file mode 100644 index 0000000000..16f771c8e3 --- /dev/null +++ b/sources/tech/20200207 NVIDIA-s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux.md @@ -0,0 +1,82 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (NVIDIA’s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux) +[#]: via: (https://itsfoss.com/geforce-now-linux/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) + +NVIDIA’s Cloud Gaming Service GeForce NOW Shamelessly Ignores Linux +====== + +NVIDIA’s [GeForce NOW][1] cloud gaming service is something promising for gamers who probably don’t have the hardware but want to experience the latest and greatest games with the best possible experience using GeForce NOW (stream the game online and play it on any device you want). + +The service was limited to a few users (in the form of the waitlist) to access. However, recently, they announced that [GeForce NOW is open to all][2]. But, it really isn’t. + +Interestingly, it’s **not available for all the regions** across the globe. And, worse- **GeForce NOW does not support Linux**. + +![][3] + +### GeForce NOW is Not ‘Open For All’ + +The whole point of making a subscription-based cloud service to play games is to eliminate platform dependence. + +Just like you would normally visit a website using a web browser – you should be able to stream a game on every platform. That’s the concept, right? + +![][4] + +Well, that’s definitely not rocket science – but NVIDIA still missed supporting Linux (and iOS)? + +### Is it because no one uses Linux? + +I would strongly disagree with this – even if it’s the reason for some to not support Linux. If that was the case, I wouldn’t be writing for It’s FOSS while using Linux as my primary desktop OS. + +Not just that – why do you think a Twitter user mentioned the lack of support for Linux if it wasn’t a thing? + +![][5] + +Yes, maybe the userbase isn’t large enough but while considering this as a cloud-based service – it doesn’t make sense to **not support Linux**. + +Technically, if no one games on Linux, **Valve** wouldn’t have noticed Linux as a platform to improve [Steam Play][6] to help more users play Windows-only games on Linux. + +I don’t want to claim anything that’s not true – but the desktop Linux scene is evolving faster than ever for gaming (even if the stats are low when compared to Windows and Mac). + +### Cloud gaming isn’t supposed to work like this + +![][7] + +As I mentioned above, it isn’t tough to find Linux gamers using Steam Play. It’s just that you’ll find the overall “market share” of gamers on Linux to be less than its counterparts. + +Even though that’s a fact – cloud gaming isn’t supposed to depend on a specific platform. And, considering that the GeForce NOW is essentially a browser-based streaming service to play games, it shouldn’t be tough for a big shot like NVIDIA to support Linux. + +Come on, team green – _you want us to believe that supporting Linux is technically tough_? Or, you just want to say that i_t’s not worth supporting the Linux platform_? + +**Wrapping Up** + +No matter how excited I was for the GeForce NOW service to launch – it was very disappointing to see that it does not support Linux at all. + +If cloud gaming services like GeForce NOW start supporting Linux in the near future – **you probably won’t need a reason to use Windows** (*coughs*). + +What do you think about it? Let me know your thoughts in the comments below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/geforce-now-linux/ + +作者:[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.nvidia.com/en-us/geforce-now/ +[2]: https://blogs.nvidia.com/blog/2020/02/04/geforce-now-pc-gaming/ +[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/nvidia-geforce-now-linux.jpg?ssl=1 +[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/02/nvidia-geforce-now.png?ssl=1 +[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/geforce-now-twitter-1.jpg?ssl=1 +[6]: https://itsfoss.com/steam-play/ +[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/ge-force-now.jpg?ssl=1 From 1af082a85765b1b5d88c565d64bd0015258c9a68 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:06:12 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200206=203=20ways?= =?UTF-8?q?=20to=20use=20PostgreSQL=20commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200206 3 ways to use PostgreSQL commands.md --- ...00206 3 ways to use PostgreSQL commands.md | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 sources/tech/20200206 3 ways to use PostgreSQL commands.md diff --git a/sources/tech/20200206 3 ways to use PostgreSQL commands.md b/sources/tech/20200206 3 ways to use PostgreSQL commands.md new file mode 100644 index 0000000000..9cfedc8506 --- /dev/null +++ b/sources/tech/20200206 3 ways to use PostgreSQL commands.md @@ -0,0 +1,230 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (3 ways to use PostgreSQL commands) +[#]: via: (https://opensource.com/article/20/2/postgresql-commands) +[#]: author: (Greg Pittman https://opensource.com/users/greg-p) + +3 ways to use PostgreSQL commands +====== +Whether you need something simple, like a shopping list, or complex, +like a color swatch generator, PostgreSQL commands make it easy. +![Team checklist and to dos][1] + +In _[Getting started with PostgreSQL][2]_, I explained how to install, set up, and begin using the open source database software. But there's a lot more you can do with commands in [PostgreSQL][3]. + +For example, I use Postgres to keep track of my grocery shopping list. I do most of the grocery shopping in our home, and the bulk of it happens once a week. I go to several places to buy the things on my list because each store offers a particular selection or quality or maybe a better price. Initially, I made an HTML form page to manage my shopping list, but it couldn't save my entries. So, I had to wait to make my list all at once, and by then I usually forgot some items we need or I want. + +Instead, with PostgreSQL, I can enter bits when I think of them as the week goes on and print out the whole thing right before I go shopping. Here's how you can do that, too. + +### Create a simple shopping list + +First, enter the database with the **psql **command, then create a table for your list with: + + +``` +`Create table groc (item varchar(20), comment varchar(10));` +``` + +Type commands like the following to add items to your list: + + +``` +insert into groc values ('milk', 'K'); +insert into groc values ('bananas', 'KW'); +``` + +There are two pieces of information (separated by a comma) inside the parentheses: the item you want to buy and letters indicating where you want to buy it and whether it's something you usually buy every week (W). + +Since **psql** has a history, you can press the Up arrow and edit the data between the parentheses instead of having to type the whole line for each item. + +After entering a handful of items, check what you've entered with: + + +``` +Select * from groc order by comment; + +      item      | comment +\----------------+--------- + ground coffee  | H + butter         | K + chips          | K + steak          | K + milk           | K + bananas        | KW + raisin bran    | KW + raclette       | L + goat cheese    | L + onion          | P + oranges        | P + potatoes       | P + spinach        | PW + broccoli       | PW + asparagus      | PW + cucumber       | PW + sugarsnap peas | PW + salmon         | S +(18 rows) +``` + +This command orders the results by the _comment_ column so that the items are grouped by where you buy them to make it easier to shop. + +By using a W to indicate your weekly purchases, you can keep your weekly items on the list when you clear out the table to prepare for the next week's list. To so that, enter: + + +``` +`delete from groc where comment not like '%W';` +``` + +Notice that in PostgreSQL, **%** is the wildcard character (instead of an asterisk). So, to save typing, you might type: + + +``` +`delete from groc where item like 'goat%';` +``` + +You can't use **item = 'goat%'**; it won't work. + +When you're ready to shop, output your list to print it or send it to your phone with: + + +``` +\o groclist.txt +select * from groc order by comment; +\o +``` + +The last command, **\o**, with nothing afterward, resets the output to the command line. Otherwise, all output will continue to go to the groc file you created. + +### Analyze complex tables + +This item-by-item entry may be okay for short tables, but what about really big ones? A couple of years ago, I was helping the team at [FreieFarbe.de][4] to create a swatchbook of the free colors (freieFarbe means "free colors" in German) from its HLC color palette, where virtually any imaginable print color can be specified by its hue, luminosity (brightness), and chroma (saturation). The result was the [HLC Color Atlas][5], and here's how we did it. + +The team sent me files with color specifications so I could write Python scripts that would work with Scribus to generate the swatchbooks of color patches easily. One example started like: + + +``` +HLC, C, M, Y, K +H010_L15_C010, 0.5, 49.1, 0.1, 84.5 +H010_L15_C020, 0.0, 79.7, 15.1, 78.9 +H010_L25_C010, 6.1, 38.3, 0.0, 72.5 +H010_L25_C020, 0.0, 61.8, 10.6, 67.9 +H010_L25_C030, 0.0, 79.5, 18.5, 62.7 +H010_L25_C040, 0.4, 94.2, 17.3, 56.5 +H010_L25_C050, 0.0, 100.0, 15.1, 50.6 +H010_L35_C010, 6.1, 32.1, 0.0, 61.8 +H010_L35_C020, 0.0, 51.7, 8.4, 57.5 +H010_L35_C030, 0.0, 68.5, 17.1, 52.5 +H010_L35_C040, 0.0, 81.2, 22.0, 46.2 +H010_L35_C050, 0.0, 91.9, 20.4, 39.3 +H010_L35_C060, 0.1, 100.0, 17.3, 31.5 +H010_L45_C010, 4.3, 27.4, 0.1, 51.3 +``` + +This is slightly modified from the original, which separated the data with tabs. I transformed it into a CSV (comma-separated value) file, which I prefer to use with Python. (CSV files are also very useful because they can be imported easily into a spreadsheet program.) + +In each line, the first item is the color name, and it's followed by its C, M, Y, and K color values. The file consisted of 1,793 colors, and I wanted a way to analyze the information to get a sense of the range of values. This is where PostgreSQL comes into play. I did not want to enter all of this data manually—I don't think I could without errors (and headaches). Fortunately, PostgreSQL has a command for this. + +My first step was to create the database with: + + +``` +`Create table hlc_cmyk (color varchar(40), c decimal, m decimal, y decimal, k decimal);` +``` + +Then I brought in the data with: + + +``` +`\copy  hlc_cmyk from '/home/gregp/HLC_Atlas_CMYK_SampleData.csv' with (header, format CSV);` +``` + +The backslash at the beginning is there because using the plain **copy** command is restricted to root and the Postgres superuser. In the parentheses, **header** means the first line contains headings and should be ignored, and **CSV** means the file format is CSV. Note that parentheses are not required around the color name in this method. + +If the operation is successful, I see a message that says **COPY NNNN**, where the N's refer to the number of rows inserted into the table. + +Finally, I can query the table with: + + +``` +select * from hlc_cmyk; + +     color     |   c   |   m   |   y   |  k   +\---------------+-------+-------+-------+------ + H010_L15_C010 |   0.5 |  49.1 |   0.1 | 84.5 + H010_L15_C020 |   0.0 |  79.7 |  15.1 | 78.9 + H010_L25_C010 |   6.1 |  38.3 |   0.0 | 72.5 + H010_L25_C020 |   0.0 |  61.8 |  10.6 | 67.9 + H010_L25_C030 |   0.0 |  79.5 |  18.5 | 62.7 + H010_L25_C040 |   0.4 |  94.2 |  17.3 | 56.5 + H010_L25_C050 |   0.0 | 100.0 |  15.1 | 50.6 + H010_L35_C010 |   6.1 |  32.1 |   0.0 | 61.8 + H010_L35_C020 |   0.0 |  51.7 |   8.4 | 57.5 + H010_L35_C030 |   0.0 |  68.5 |  17.1 | 52.5 +``` + +It goes on like this for all 1,793 rows of data. In retrospect, I can't say that this query was absolutely necessary for the HLC and Scribus task, but it allayed some of my anxieties about the project. + +To generate the HLC Color Atlas, I automated creating the color charts with Scribus for the 13,000+ colors in those pages of color swatches. + +I could have used the **copy** command to output my data: + + +``` +`\copy hlc_cmyk to '/home/gregp/hlc_cmyk_backup.csv' with (header, format CSV);` +``` + +I also could restrict the output according to certain values with a **where** clause. + +For example, the following command will only send the table values for the hues that begin with H10. + + +``` +`\copy hlc_cmyk to '/home/gregp/hlc_cmyk_backup.csv' with (header, format CSV) where color like 'H10%';` +``` + +### Back up or transfer a database or table + +The final command I will mention here is **pg_dump**, which is used to back up a PostgreSQL database and runs outside of the **psql** console. For example: + + +``` +pg_dump gregp -t hlc_cmyk > hlc.out +pg_dump gregp > dball.out +``` + +The first line exports the **hlc_cmyk** table along with its structure. The second line dumps all the tables inside the **gregp** database. This is very useful for backing up or transferring a database or tables.  + +To transfer a database or table to another computer, first, create a database on the other computer (see my "[getting started][2]" article for details), then do the reverse process: + + +``` +`psql -d gregp -f dball.out` +``` + +This creates all the tables and enters the data in one step. + +### Conclusion + +In this article, we have seen how to use the **WHERE** parameter to restrict operations, along with the use of the PostgreSQL wildcard character **%**. We've also seen how to load a large amount of data into a table, then output some or all of the table data to a file, or even your entire database with all its individual tables. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/2/postgresql-commands + +作者:[Greg Pittman][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/greg-p +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/todo_checklist_team_metrics_report.png?itok=oB5uQbzf (Team checklist and to dos) +[2]: https://opensource.com/article/19/11/getting-started-postgresql +[3]: https://www.postgresql.org/ +[4]: http://freiefarbe.de +[5]: https://www.freiefarbe.de/en/thema-farbe/hlc-colour-atlas/ From 60e2376c972a23948a2817b20083c812a02f346d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:09:05 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200206=20How=20ke?= =?UTF-8?q?y=20Python=20projects=20are=20maintained?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200206 How key Python projects are maintained.md --- ... How key Python projects are maintained.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20200206 How key Python projects are maintained.md diff --git a/sources/tech/20200206 How key Python projects are maintained.md b/sources/tech/20200206 How key Python projects are maintained.md new file mode 100644 index 0000000000..2b3dc0e1e2 --- /dev/null +++ b/sources/tech/20200206 How key Python projects are maintained.md @@ -0,0 +1,91 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (How key Python projects are maintained) +[#]: via: (https://opensource.com/article/20/2/python-maintained) +[#]: author: (Moshe Zadka https://opensource.com/users/moshez) + +How key Python projects are maintained +====== +A peek behind the scenes of the community that keeps open source Python +projects running smoothly. +![and old computer and a new computer, representing migration to new software or hardware][1] + +Jannis Leidel is part of the [Jazzband][2] community. Jazzband is a collaborative community that shares the responsibility of maintaining [Python][3]-based projects. + +Jazzband was born out of the stress of maintaining an open source project alone for a longer time. Jannis is a roadie, which means he does administrative tasks and makes sure the people in the band can play when they want. + +Jazzband is not his first open source volunteer work—he is a former [Django][4] core developer, [Django Software Foundation][5] board member, has written many Django apps and Python projects, has been a [pip][6] and [virtualenv][7] core developer and release manager, co-founded the [Python Packaging Authority][8], and been a [PyPI][9] admin. On the community front, he co-founded the German Django Association, served as [DjangoCon Europe][10] 2010 co-chairperson, has spoken at several conferences, and for the last year has served as a director and co-communication chair of the [Python Software Foundation][11]. + +### Moshe Zadka: How did you get started with programming? + +Jannis Leidel: I got started with programming as part of the regular German computer science lessons in high school, where I dabbled with Turbo Pascal and Prolog. I quickly got drawn into the world of web development and wrote small websites with PHP3, [Perl5][12], and [MySQL][13]. Later at university, I picked up programming again while working on media arts projects and found [Ruby][14], Perl, and Python to be particularly helpful. I eventually stuck with Python for its versatility and ease of use. I'm very happy to have been able to use Python and open web technologies (HTML/JS/CSS) in my career since then. + +### Zadka: How did you get started with open source? + +Leidel: As part of an art project at university, I needed a way to talk to various web services and interact with some electronics and found my prior PHP skills not up to the task. So I took a class about programming with Python and got interested in learning more about how frameworks work—compared to libraries—as they further enshrine best practices that I wanted to know about. In particular, the nascent Django Web Framework really appealed to me since it favored a pragmatic approach and provided lots of guidance for how to develop web applications. In 2007 I participated as a student in the Google Summer of Code for Django and later contributed more to Django and its ecosystem of reusable components—after a while as a Django core developer as well. While finishing my degree, I was able to use those skills to work as a freelancer and also spend time on many different parts of the Django community. Moving laterally to the broader Python community was only natural at that point. + +### Zadka: What do you for your day job? + +Leidel: I'm a Staff Software Engineer at Mozilla, working on data tools for the Firefox data pipeline. In practice, that means I'm working in the broader Firefox Engineering team on various internal and public-facing web-based projects that help Mozilla employees and community members to make sense of the telemetry data that the Firefox web browser sends. Part of my current focus is maintaining our data analysis and visualization platform, which is based on the open source project [Redash][15], and also contributing back to it. Other projects that I contribute to are our next-gen telemetry system [Glean][16] and a tool that allows you to do data science in the browser (including the Scientific Python stack) called [Iodide][17]. + +### Zadka: How did you get involved with Jazzband? + +Leidel: Back in 2015, I was frustrated with maintaining projects alone that a lot of people depended on and saw many of my community peers struggle with similar issues. I didn't know a good way to reach more people in the community who may also have an interest in long-term maintenance. On some occasions, I felt that the new "social coding" paradigm was rarely social and often rather isolating and sometimes even traumatic for old and new contributors. I believe the inequality in our community that I find intolerable nowadays was even more rampant at the time, which made providing a safe environment for contributors difficult—something which we now know is essential for stable project maintenance. I wondered if we were missing a more collaborative and inclusive approach to software development. + +The Jazzband project was launched in an attempt to lower the barriers to entry for maintenance and simplify some of the more boring aspects of it (e.g., best practices around [CI][18]). + +### Zadka: What is your favorite thing about Jazzband? + +Leidel: My favorite thing about Jazzband is the fact that we've secured the maintenance of many projects that a lot of people depend on while also making sure that new contributors of any level of experience can join. + +### Zadka: What is the job of a "roadie" in Jazzband? + +Leidel: A "roadie" is a go-to person when it comes to all things behind the scenes for Jazzband. That means, for example, dealing with onboarding new projects, maintaining the Jazzband website that handles user management and project releases, acting as a first responder to security or Code of Conduct incidents, and much more. The term "roadies" is borrowed from the music and event industry for support personnel that takes care of almost everything that needs to be done while traveling on tour, except for the actual artistic performance. In Jazzband, they are there to make sure the members can work on the projects. That also means that some tasks are partially or fully automated, where it makes sense, and that best practices are applied to the majority of the Jazzband projects like packaging setup, documentation hosting or continuous integration. + +### Zadka: What is the most challenging aspect of your job as a roadie for Jazzband? + +Leidel: At the moment, the most challenging aspect of my job as a roadie is to implement improvements for Jazzband that community members have proposed without risking the workflow that they have come to rely on. In other words, scaling the project on a conceptual level has become more difficult the bigger Jazzband gets. There is a certain irony in the fact that I'm the only roadie at the moment and handle some of the tasks alone while Jazzband tries to prevent that from happening for its projects. This is a big concern for the future of Jazzband. + +### Zadka: What would you say to someone who is wondering whether they should join Jazzband? + +Leidel: If you're interested in joining a group of people who believe that working collaboratively is better than working alone, or if you have struggled with maintenance burden on your own and don't know how to proceed, consider joining Jazzband. It simplifies onboarding new contributors, provides a framework for disputes, and automates releases to [PyPI][19]. There are many best practices that work well for reducing the risk of projects becoming unmaintained. + +### Zadka: Is there anything else you want to tell our readers? + +Leidel: I encourage everyone working on open source projects to consider the people on the other side of the screen. Be empathetic and remember that your own experience may not be the experience of your peers. Understand that you are members of a global and diverse community, which requires us always to take leaps of respect for the differences between us. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/2/python-maintained + +作者:[Moshe Zadka][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/moshez +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/migration_innovation_computer_software.png?itok=VCFLtd0q (and old computer and a new computer, representing migration to new software or hardware) +[2]: https://jazzband.co/ +[3]: https://opensource.com/resources/python +[4]: https://opensource.com/article/18/8/django-framework +[5]: https://www.djangoproject.com/foundation/ +[6]: https://opensource.com/article/19/11/python-pip-cheat-sheet +[7]: https://virtualenv.pypa.io/en/latest/ +[8]: https://www.pypa.io/en/latest/ +[9]: https://pypi.org/ +[10]: https://djangocon.eu/ +[11]: https://www.python.org/psf/ +[12]: http://opensource.com/article/18/1/why-i-love-perl-5 +[13]: https://opensource.com/life/16/10/all-things-open-interview-dave-stokes +[14]: http://opensource.com/business/16/4/save-development-time-and-effort-ruby +[15]: https://redash.io/ +[16]: https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/start/report-gecko-telemetry-in-glean.html +[17]: https://alpha.iodide.io/ +[18]: https://opensource.com/article/19/12/cicd-resources +[19]: https://opensource.com/downloads/7-essential-pypi-libraries From bc405d3058549364c4b237e384660a2bc5faa62d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:10:16 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200206=20How=20Dr?= =?UTF-8?q?upal=208=20aims=20to=20be=20future-proof?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200206 How Drupal 8 aims to be future-proof.md --- ...06 How Drupal 8 aims to be future-proof.md | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sources/tech/20200206 How Drupal 8 aims to be future-proof.md diff --git a/sources/tech/20200206 How Drupal 8 aims to be future-proof.md b/sources/tech/20200206 How Drupal 8 aims to be future-proof.md new file mode 100644 index 0000000000..616aaa164f --- /dev/null +++ b/sources/tech/20200206 How Drupal 8 aims to be future-proof.md @@ -0,0 +1,114 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (How Drupal 8 aims to be future-proof) +[#]: via: (https://opensource.com/article/20/2/drupal-8-promises) +[#]: author: (Shefali Shetty https://opensource.com/users/shefalishetty) + +How Drupal 8 aims to be future-proof +====== +What you need to know about Drupal 8 updates. +![Drupal logo with gray and blue][1] + +Thomas Edison famously said, "The three great essentials to achieve anything worthwhile are, first, hard work; second, stick-to-itiveness; third, common sense." This quote made me wonder if "sticking-to-it" is contradictory to innovation; does it make you resistant to change? But, the more I pondered on it, I realized that innovation is fueled by perseverance. + +Before Drupal 8 was introduced, the Core committee had not just promised to innovate; they decided to be persistent. Persistent in continuous reinvention. Persistent in making Drupal easier to adopt—not only by the market but also by developers with various levels of expertise. However, to be able to make Drupal successful and relevant in the long run, a drastic change was needed—a change that would build a better future. For this, Drupal 8 had to dismantle the Drupal 7 architecture and lay a fresh foundation for a promising future. Moving on to Drupal 9 (coming soon) and subsequent versions will now be easy and straightforward. + +### Freedom to innovate with open source + +Innovation brings freedom, and freedom creates innovation. Open source gives you the freedom to access, learn, contribute, and, most importantly, the freedom to innovate. The ability to learn, catch up, and reinvent is extremely crucial today. Drupal began as a small internal news website and later went on to become an open source content management system (CMS) because there was a potential to make it much more compelling by attracting more contributions. It gave developers the freedom to collaborate, re-use components, and improvise on it to create something more modern, powerful, and relevant. + +### Promises delivered: Drupal 8 version history + +The web is always changing. To stay relevant, [Drupal][2] had to introduce changes that were revolutionary but, at the same time, not so hard to accept. Drupal 7, as a content management system, was widely welcomed. But it lacked in certain aspects like developer adoptability, easy upgrade paths, better API support, and more. Drupal 8 changed everything. They did not choose to build upon Drupal 7, which would have been an easier choice for an open source CMS. For a more future-proof CMS that is ready to accept changes, Drupal 8 had to be rebuilt with more modern components like Symfony, Twig, PHP 7, and initiatives like the API-first initiative, mobile-first initiative, Configuration Management initiative, etc. + +Drupal 8 was released with a promise of providing more ambitious digital experiences with better UX improvements and mobile compatibilities. The goal was to continuously innovate and reinvent itself. For this to work, these practices needed to be put in place: semantic versioning (major.minor.patch), scheduled releases (two minor releases per year), and introducing experimental modules in Core. All of this while providing backward compatibility and removing deprecated code. + +Let’s look at some of the promises that have been delivered with each minor version of Drupal 8. + + * **Drupal 8.0** + * Modern and sophisticated PHP practices, object-oriented programming, and libraries. + * Storage and management of configuration was a bit of a messy affair with Drupal 7. The Configuration Management Initiative was introduced with Drupal 8.0, which allowed for cleaner installations and config management. Configurations are now stored in easily readable YAML format files. These config files can also be readily imported. This allows for smooth and easy transitions to different deployment environments. + * Adding Symfony components drastically improved Drupal 8’s flexibility, performance, and robustness. Symfony is an open source PHP framework, and it abides by the MVC (Model-View-Controller) architecture. + * Twig is a powerful template engine for PHP, replaced Drupal’s engine since 2005, PHPTemplate. With Twig, the code is now more readable, and the theme system is less complex, uses inheritance to avoid redundant code, and offers more security by sanitizing variables and functions. + * The Entity API, which was quite limited and a contributed module in Drupal 7, is now full-fledged and is in Drupal 8 Core. Since Drupal 8 treats everything as an "entity," the Entity API provides a standardized method of working with them. + * The CKEditor, which is a WYSIWYG (What You See Is What You Get) editor, was introduced. It allows for editing on the go, in-context editing, and previewing your changes before it gets published. + * **Drupal 8.1** + * The alpha version of the BigPipe module got introduced to Core as an experimental module. BigPipe renders Drupal 8 pages faster using methods like caching and auto-placeholder-ing. + * A Migrate UI module suite got introduced to Core as an experimental module. It makes migrating from Drupal 7 to Drupal 8 easier. + * The CKEditor now includes spell-check functionality and the ability to add optional languages in text. + * Improved testing infrastructure and support especially for Javascript interactions. + * Composer is an essential tool to manage third-party dependencies of websites and modules. With Drupal 8.1, Drupal Core and all its dependencies are now managed and packaged by Composer. + * **Drupal 8.2** + * The Place Block module is now an experimental module in Core. With this module, you can easily play around with blocks right from the web UI. Configuring and editing blogs can be done effortlessly. + * A new Content Moderation module that is based on the contributed module Workbench Moderation has been introduced as an experimental module in Core. It allows for granular workflow permissions and support. + * Content authoring experiences have been enhanced with better revision history and recovery. + * Improved page caching for 404 responses. + * **Drupal 8.3** + * The BigPipe module is now stable! + * More improvements in the CKEditor. A smooth copy-paste experience from Word, drag and drop images, and an Autogrow plugin that lets you work with bigger screen sizes and more. + * Better admin status reporting for improved administrator experience. + * The Field Layout module was added as an experimental module in Core. This module replaces the Display Suite in Drupal 7 and allows for arranging and assigning layouts to different content types. + * **Drupal 8.4** + * The 8.4 version calls for many stable releases of previously experimental modules. + * Inline Form Errors module, which was introduced in Drupal 8.0, is now stable. With this module, form errors are placed next to the form element in question, and a summary of the errors is provided on the top of the form. + * Another stable release—the DateTime Range module that allows date formats to match that of the Calendar module. + * The Layout Discovery API, which was added as an experimental module in Drupal 8.3, is now stable and ready to roll. With this module, the Layout API is added to Drupal 8 Core. It has adopted the previously popular contributed modules—Panels and Panelizer—that were used extensively to create amazing layouts. Drupal 8’s Layout initiative has ensured that you have a powerful Layout building tool right out of the box. + * The very popular Media module is added as an API for developers to be able to port a wide range of Media contributed modules from Drupal 7. For example, media modules like the Media entity, media entity document, media entity browser, media entity image, and more. However, this module is still hidden from site builders till the porting and fixing of issues are over with. + * **Drupal 8.5** + * One of the top goals that Drupal 8 set out to reach was making rich images, media integration, and asset management easier and better for content authors. It has successfully achieved this goal by adding the Media module now in Core (and it isn’t hidden anymore).  + * Content Moderation module is now stable. Defining various levels and statuses of workflow and moving them around is effortless. + * The Layout builder module is introduced as an experimental module. It gives site builders full control and flexibility to customize and built layouts from other layout components, blocks, and regions. This has been one of the top goals for Drupal 8 site builders. + * The Migrate UI module suite that was experimental in Drupal 8.1 is now considered stable. + * Big pipe module which got previously stable in version 8.5, now comes by default in the standard installation profile. All Drupal 8 sites are now faster by default. + * PHP 7.2 is here, and Drupal 8.5 now runs on it and fully supports the new features and performance improvements that it offers. + * **Drupal 8.6** + * The very helpful oEmbed format is now supported in the Drupal 8.6 Media module. The oEmbed API helps in displaying embedded content when a URL for that resource is posted. Also included within the Media module is support for embedding YouTube and Vimeo videos. + * An experimental Media Library module is now in Core. Adding and browsing multiple media is now supported and can also be customized. + * A new demo site called Umami has been introduced that demonstrates Drupal 8's Core features. This installation profile can give a new site builder a peek into Drupal’s capabilities and allows them to play around with views, fields, and pages for learning purposes. It also acts as an excellent tool for Drupal agencies to showcase Drupal 8 to its customers. + * Workspaces module is introduced as an experimental module. When you have multiple content packages that need to be reviewed (status change) and deployed, this module lets you do all of it together and saves you a lot of time. + * Installing Drupal has now gotten easier with this version. It offers two new easy ways of installing Drupal. One with a "quick start" command that only requires you to have PHP installed. In the other option, the installer automatically identifies if there has been a previous installation and lets you install it from there. + * **Drupal 8.7** + * One of the most significant additions to Drupal Core that went straight there as a stable module is the JSON:API module. It takes forward Drupal’s API-first initiative and provides an easy way to build decoupled applications. + * The Layout Builder module is now stable and better than ever before. It now even lets you work with unstructured data as well as fieldable entities. + * Media Library module gets a fresh new look with this version release. Marketers and Content editors now have it much easier with the ability to search, attach, drag, and drop media files whenever and wherever they need it. + * Fully supports PHP 7.3. + * Taxonomy and Menu items are revision-able, which means that they can be used in editorial workflows and can be assigned statuses. + * **Drupal 8.8** + * This version is going to be the last minor version of Drupal 8 where you will find new features or deprecations. The next version, Drupal 8.9, will not include any new additions but will be very similar to Drupal 9.0. + * The Media Library module is now stable and ready to use. + * Workspaces module is now enhanced to include adding hierarchical workspaces. This gives more flexibility in the hands of the content editor. It also works with the Content Moderation module now. + * Composer now receives native support and does not need external projects to package Drupal with its dependencies. You can create new projects with just a one-line command using Composer. + * Keeping its promises on making Drupal easier to learn for newbies, a new experimental module for Help Topics has been introduced. Each module, theme, and installation profile can have task-based help topics. + + + +### Opening doors to a wider set of developers + +Although Drupal was largely accepted and loved for its flexibility, resilience, and, most of all, its content management abilities, there was a nagging problem—the "deep learning curve" issue. While many Drupalers argue that the deep learning curve is part and parcel of a CMS that can build highly complex and powerful applications, finding Drupal talent is a challenge. Dries, the founder of Drupal, says, "For most people new to Drupal, Drupal 7 is really complex." He also adds that this could be because of holding on to procedural programming, large use of structured arrays, and more such "Drupalisms" (as he calls them). + +This issue needed to be tackled. With Drupal 8 adopting modern platforms and standards like object-oriented programming concepts, latest PHP standards, Symfony framework, and design patterns, the doors are now flung wide open to a broad range of talent (site builders, themes, developers). + +### Final thoughts + +"The whole of science is nothing more than a refinement of everyday thinking."– Albert Einstein. + +Open source today is more than just free software. It is a body of collaborated knowledge and effort that is revolutionizing the digital ecosystem. The digital world is moving at a scarily rapid pace, and I believe it is only innovation and perseverance from open source communities that can bring it to speed. The Drupal community unwaveringly reinvents and refines itself each day, which is especially seen in the latest release of Drupal 8. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/2/drupal-8-promises + +作者:[Shefali Shetty][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/shefalishetty +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/drupal_blue_gray_lead.jpeg?itok=eSkFp_ur (Drupal logo with gray and blue) +[2]: https://www.specbee.com/drupal-web-development-services From a9806e0c5a45f886b8438b7adb7db6a069c759df Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:11:15 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200205=20The=20Y2?= =?UTF-8?q?038=20problem=20in=20the=20Linux=20kernel,=2025=20years=20of=20?= =?UTF-8?q?Java,=20and=20other=20industry=20news?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md --- ... years of Java, and other industry news.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md diff --git a/sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md b/sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md new file mode 100644 index 0000000000..2e814fdfc0 --- /dev/null +++ b/sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md @@ -0,0 +1,71 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news) +[#]: via: (https://opensource.com/article/20/2/linux-java-and-other-industry-news) +[#]: author: (Tim Hildred https://opensource.com/users/thildred) + +The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news +====== +A weekly look at open source community and industry trends. +![Person standing in front of a giant computer screen with numbers, data][1] + +As part of my role as a senior product marketing manager at an enterprise software company with an open source development model, I publish a regular update about open source community, market, and industry trends for product marketers, managers, and other influencers. Here are five of my and their favorite articles from that update. + +## [Need 32-bit Linux to run past 2038? When version 5.6 of the kernel pops, you're in for a treat][2] + +> Arnd Bergmann, an engineer working on the thorny Y2038 problem in the Linux kernel, posted to the [mailing list][3] that, yup, Linux 5.6 "should be the first release that can serve as a base for a 32-bit system designed to run beyond year 2038." + +**The impact:** Y2K didn't get fixed; it just got bigger and delayed. There is no magic in software or computers; just people trying to solve complicated problems as best they can, and some times introducing more complicated problems for different people to solve at some point in the future. + +## [What the dev? Celebrating Java's 25th anniversary][4] + +> Java is coming up on a big milestone: Its 25th anniversary! To celebrate, we take a look back over the last 25 years to see how Java has evolved over time. In this episode, Social Media and Online Editor Jenna Sargent talks to Rich Sharples, senior director of product management for middleware at Red Hat, to learn more. + +**The impact:** There is something comforting about immersing yourself in a deep well of lived experience. Rich clearly lived through what he is talking about and shares insider knowlege with you (and his dog). + +## [Do I need an API Gateway if I use a service mesh?][5] + +> This post may not be able to break through the noise around API Gateways and Service Mesh. However, it’s 2020 and there is still abundant confusion around these topics. I have chosen to write this to help bring real concrete explanation to help clarify differences, overlap, and when to use which. Feel free to [@ me on twitter (@christianposta)][6] if you feel I’m adding to the confusion, disagree, or wish to buy me a beer (and these are not mutually exclusive reasons). + +**The impact:** Yes, though they use similar terms and concepts they have different concerns and scopes. + +## [What Australia's AGL Energy learned about Cloud Native compliance][7] + +> This is really at the heart of what open source is, enabling everybody to contribute equally. Within large enterprises, there are controls that are needed, but if we can automate the management of the majority of these controls, we can enable an amazing culture and development experience. + +**The impact:** They say "software is eating the world" and "developers are the new kingmakers." The fact that compliance in an energy utility is subject to developer experience improvement basically proves both statements. + +## [Monoliths are the future][8] + +> And then what they end up doing is creating 50 deployables, but it’s really a _distributed_ monolith. So it’s actually the same thing, but instead of function calls and class instantiation, they’re initiating things and throwing it over a network and hoping that it comes back. And since they can’t reliably _make it_ come back, they introduce things like [Prometheus][9], [OpenTracing][10], all of this stuff. I’m like, **“What are you doing?!”** + +**The impact:** Do things for real reasons with a clear-eyed understanding of what those reasons are and how they'll make your business or your organization better. + +_I hope you enjoyed this list of what stood out to me from last week and come back next Monday for more open source community, market, and industry trends._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/2/linux-java-and-other-industry-news + +作者:[Tim Hildred][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/thildred +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_metrics_analytics_desktop_laptop.png?itok=9QXd7AUr (Person standing in front of a giant computer screen with numbers, data) +[2]: https://www.theregister.co.uk/2020/01/30/linux_5_6_2038/ +[3]: https://lkml.org/lkml/2020/1/29/355 +[4]: https://whatthedev.buzzsprout.com/673192/2543290-celebrating-java-s-25th-anniversary-episode-16 +[5]: https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/ (Do I Need an API Gateway if I Use a Service Mesh?) +[6]: http://twitter.com/christianposta?lang=en +[7]: https://thenewstack.io/what-australias-agl-energy-learned-about-cloud-native-compliance/ +[8]: https://changelog.com/posts/monoliths-are-the-future +[9]: https://prometheus.io/ +[10]: https://opentracing.io From e33dd857c3ed2cfdf385efd1d8733aa3af50d0f7 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:12:05 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200205=20Getting?= =?UTF-8?q?=20started=20with=20GnuCash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200205 Getting started with GnuCash.md --- .../20200205 Getting started with GnuCash.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sources/tech/20200205 Getting started with GnuCash.md diff --git a/sources/tech/20200205 Getting started with GnuCash.md b/sources/tech/20200205 Getting started with GnuCash.md new file mode 100644 index 0000000000..7eca343e8f --- /dev/null +++ b/sources/tech/20200205 Getting started with GnuCash.md @@ -0,0 +1,96 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Getting started with GnuCash) +[#]: via: (https://opensource.com/article/20/2/gnucash) +[#]: author: (Don Watkins https://opensource.com/users/don-watkins) + +Getting started with GnuCash +====== +Manage your personal or small business accounting with GnuCash. +![A dollar sign in a network][1] + +For the past four years, I've been managing my personal finances with [GnuCash][2], and I'm quite satisfied with it. The open source (GPL v3) project has been growing and improving since its initial release in 1998, and the latest version, 3.8, released in December 2019, adds many improvements and bug fixes. + +GnuCash is available for Windows, MacOS, and Linux. The application implements a double-entry bookkeeping system and can import a variety of popular open and proprietary file formats, including QIF, QFX, OFX, CSV, and more. This makes it easy to convert from other personal finance applications, including Quicken, which it was created to replicate. + +With GnuCash, you can track personal finances as well as small business accounting and invoicing. It doesn't have an integrated payroll system; according to the documentation, you can track payroll expenses in GnuCash, but you have to calculate taxes and deductions outside the software. + +### Installation + +To install GnuCash on Linux: + + * On Red Hat, CentOS, or Fedora: **$ sudo dnf install gnucash** + * On Debian, Ubuntu, or Pop_OS: **$ sudo apt install gnucash** + + + +You can also install it from [Flathub][3], which is what I used on my laptop running Elementary OS. (All the screenshots in this article are from that installation.) + +### Setup + +After you install and launch the program, you will see a welcome screen that gives you the option to create a new set of accounts, import QIF files, or open a new user tutorial. + +![GnuCash Welcome screen][4] + +#### Personal accounts + +If you choose the first option (as I did), GnuCash opens a screen to help you get up and running. It collects initial data and sets up your account preferences, such as your account types and names, business data (e.g., tax ID number), and preferred currency. + +![GnuCash new account setup][5] + +GnuCash supports personal bank accounts, business accounts, car loans, CD and money market accounts, childcare accounts, and more. + +As an example, start by creating a simple checkbook. You can either enter your account's beginning balance or import existing account data in multiple formats. + +![GnuCash import data][6] + +#### Invoicing + +GnuCash also supports small business functions, including customers, vendors, and invoicing. To create an invoice, enter the data in the **Business ->Invoice** section. + +![GnuCash create invoice][7] + +Then you can either print the invoice on paper or export it to a PDF and email it to your customer. + +![GnuCash invoice][8] + +### Get help + +If you have questions, there's an excellent Help section that's guide accessible from the far-right side of the menu bar. + +![GnuCash help][9] + +The project's website includes links to lots of helpful information, such as a great overview of GnuCash [features][10]. GnuCash also has [detailed documentation][11] available to download and read offline and a [wiki][12] with helpful information for users and developers. + +You can find other files and documentation in the project's [GitHub][13] repository. The GnuCash project is volunteer-driven. If you would like to contribute, please check out [Getting involved][14] on the project's wiki. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/2/gnucash + +作者:[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_whitehurst_money.png?itok=ls-SOzM0 (A dollar sign in a network) +[2]: https://www.gnucash.org/ +[3]: https://flathub.org/apps/details/org.gnucash.GnuCash +[4]: https://opensource.com/sites/default/files/images/gnucash_welcome.png (GnuCash Welcome screen) +[5]: https://opensource.com/sites/default/files/uploads/gnucash_newaccountsetup.png (GnuCash new account setup) +[6]: https://opensource.com/sites/default/files/uploads/gnucash_importdata.png (GnuCash import data) +[7]: https://opensource.com/sites/default/files/uploads/gnucash_enter-invoice.png (GnuCash create invoice) +[8]: https://opensource.com/sites/default/files/uploads/gnucash_invoice.png (GnuCash invoice) +[9]: https://opensource.com/sites/default/files/uploads/gnucash_help.png (GnuCash help) +[10]: https://www.gnucash.org/features.phtml +[11]: https://www.gnucash.org/docs/v3/C/gnucash-help.pdf +[12]: https://wiki.gnucash.org/wiki/GnuCash +[13]: https://github.com/Gnucash +[14]: https://wiki.gnucash.org/wiki/GnuCash#Getting_involved_in_the_GnuCash_project From 0ffc78668769d07c7cdb90e9e9f35f7789e9792f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 Feb 2020 01:12:58 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E9=80=89=E9=A2=98:=2020200205=20OpenCens?= =?UTF-8?q?us=20to=20monitor=20your=20Kubernetes=20cluster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20200205 OpenCensus to monitor your Kubernetes cluster.md --- ...nsus to monitor your Kubernetes cluster.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 sources/tech/20200205 OpenCensus to monitor your Kubernetes cluster.md diff --git a/sources/tech/20200205 OpenCensus to monitor your Kubernetes cluster.md b/sources/tech/20200205 OpenCensus to monitor your Kubernetes cluster.md new file mode 100644 index 0000000000..d0654aaf9b --- /dev/null +++ b/sources/tech/20200205 OpenCensus to monitor your Kubernetes cluster.md @@ -0,0 +1,107 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (OpenCensus to monitor your Kubernetes cluster) +[#]: via: (https://opensource.com/article/20/2/kubernetes-opencensus) +[#]: author: (Yuri Grinshteyn https://opensource.com/users/yuri-grinshteyn) + +OpenCensus to monitor your Kubernetes cluster +====== +Learn how to use OpenCensus, a set of open source libraries for +observability instrumentation and metrics tracing. +![Ship captain sailing the Kubernetes seas][1] + +In my last article in this series, I [introduced monitoring with Prometheus][2], the leading open source metric instrumentation, collection, and storage toolkit. While Prometheus has become the de facto standard for monitoring Kubernetes for many users, there may be reasons why you might choose another approach for metric telemetry. + +One reason is that using Prometheus introduces another component in your cluster that needs to be maintained and updated and will require additional management to ensure data persistence over the long term. Another reason is that Prometheus collects an incredibly large set of metrics right out of the box, and this could become cost-prohibitive in situations where metric volume is an input into your overall observability costs. + +This article will introduce you to [OpenCensus][3], a set of open source libraries for observability instrumentation. OpenCensus is the currently recommended library to use for instrumenting services to collect traces and metrics. The OpenTracing and OpenCensus projects have been merged into [OpenTelemetry][4], which will become the recommended library. + +While OpenCensus enables both metrics and distributed tracing, this article focuses on metrics by: + + * Describing the OpenCensus approach to instrumentation and its data model + * Walking through a tutorial to explain how to instrument an application, deploy a sample application, and review the metrics that you can create with OpenCensus + + + +I will revisit tracing in a future article. + +### OpenCensus basics + +OpenCensus' implementation depends on three core components: + + * The [instrumentation][5] to create metrics and record data points (varies by language) + * An [exporter][6] to send metric data to a storage backend (varies by language) + * The backend to store metrics and enable querying metric data (varies by database) + + + +To use OpenCensus in your application to record custom metrics, you will need to understand these elements for your particular programming languages and infrastructure. + +#### Instrumentation + +To understand how to instrument your application, you need first to understand OpenCensus' primitives, which are **measurements**, **measures**, **views**, and **aggregations**. + + * **Measurement:** A measurement is the most fundamental entity; it's the single data point collected that represents a value at a point in time. For example, for a latency metric measured in milliseconds (ms), a measurement of 100 could represent an event with 100ms latency. + * **Measure:** A measure represents a metric to be recorded. For example, you could use a "latency" measure to record HTTP response latency from your service. A measure is made up of a name, a description, and the units that the metric uses. For example, to measure latency, you might specify: + * Name: response_latency + * Description: latency of server response in ms + * Unit: ms + * **View:** A view is the combination of a measure, an aggregation, and optional tags. Views are the mechanism you'll use to connect to an exporter to send the captured values to a storage backend. A view includes: + * Name + * Description + * The measure that will produce measurements for this collection + * TagKeys, if you're using tags + * **Aggregations:** Each view is also required to specify an aggregation; that is, how the view will treat multiple measures. Aggregations can be one of the following: + * Count: The count of the number of measurement points in the view + * Distribution: Histogram distribution of the points in the view + * Sum: A sum of the values of the measurement points + * LastValue: Only the last recorded value in the measurement + + + +You can also refer to OpenCensus' [source][7] for additional information about the primitives. + +#### Exporters + +Once you have written the instrumentation to create measures, capture measurements, and aggregate them into views, you need an exporter to send your recorded metric data to your chosen storage backend. Unlike Prometheus, where you expose a dedicated metric endpoint to be scraped, OpenCensus works on a push model—the exporter pushes your collected data to the specified backend. You need to [choose the exporter][6] based on: + + * The language that your application and instrumentation are written in + * Available support for stats (metrics) + * The available backend options + + + +Using an exporter requires instantiating it in your code, registering it, and then registering your view to have the exporter send the collected data to the backend. + +### Leverage metrics in OpenCensus + +Now that you understand the terminology for how OpenCensus works to collect and export metrics, the next thing to learn is how metrics in OpenCensus function. Unlike [Prometheus][8], where you have to define the metric kind upfront, OpenCensus simply requires you to _collect_ the measurements and then _aggregate_ them in the _view_ before sending them to the _exporter_. The measurements support integer and float values. From there, you can use create histograms using the _distribution_ aggregation, add up the number of samples using the _count_ aggregation, or add up the collected values using the _sum_ aggregation. + +Now you have a basic understanding of what OpenCensus is, how it works, and the kinds of data it can collect and store. Download your favorite tooling (or use [my tutorial here][9] and a [quickstart lab][10]) and take OpenCensus for a spin. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/2/kubernetes-opencensus + +作者:[Yuri Grinshteyn][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/yuri-grinshteyn +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_captain_devops_kubernetes_steer.png?itok=LAHfIpek (Ship captain sailing the Kubernetes seas) +[2]: https://opensource.com/article/19/11/introduction-monitoring-prometheus +[3]: https://opencensus.io/ +[4]: https://opentelemetry.io/ +[5]: https://github.com/census-instrumentation +[6]: https://opencensus.io/exporters/supported-exporters/ +[7]: https://opencensus.io/stats/ +[8]: https://prometheus.io/docs/concepts/metric_types/ +[9]: https://github.com/yuriatgoogle/stack-doctor +[10]: https://google.qwiklabs.com/ From 767e4c02c10ea734c53027d7a160faebfebcb028 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Fri, 7 Feb 2020 10:10:09 +0800 Subject: [PATCH 14/15] Rename sources/tech/20200206 How Drupal 8 aims to be future-proof.md to sources/talk/20200206 How Drupal 8 aims to be future-proof.md --- .../20200206 How Drupal 8 aims to be future-proof.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20200206 How Drupal 8 aims to be future-proof.md (100%) diff --git a/sources/tech/20200206 How Drupal 8 aims to be future-proof.md b/sources/talk/20200206 How Drupal 8 aims to be future-proof.md similarity index 100% rename from sources/tech/20200206 How Drupal 8 aims to be future-proof.md rename to sources/talk/20200206 How Drupal 8 aims to be future-proof.md From 92f1457201b90ec3591d936c15bb7a5e448d4065 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Fri, 7 Feb 2020 10:15:05 +0800 Subject: [PATCH 15/15] Rename sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md to sources/news/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md --- ...the Linux kernel, 25 years of Java, and other industry news.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md (100%) diff --git a/sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md b/sources/news/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md similarity index 100% rename from sources/tech/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md rename to sources/news/20200205 The Y2038 problem in the Linux kernel, 25 years of Java, and other industry news.md