Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating

This commit is contained in:
geekpi
2022-07-20 08:32:52 +08:00
15 changed files with 2065 additions and 113 deletions

View File

@@ -3,19 +3,22 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: "hanszhao80"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14843-1.html"
如何给 Ubuntu 等 Linux 系统的旧内核设置默认启动
如何默认启动到 Linux 系统的旧内核
======
![](https://img.linux.net.cn/data/attachment/album/202207/19/142100e4ympeo7y5w6pwvo.jpg)
这是一个可能的情景。你的系统收到了内核更新,但不知何故,事情不像以前那样顺利。
你意识到,如果你启动到较旧的内核(是的,你可以降级内核),一切都会恢复正常。
高兴之余你会觉得有点儿不爽。因为你不得不在每次启动时手动选择较旧的内核。
一位年长的 It's FOSS 读者遇到了这个问题。[Linux Mint][1] 中的新内核更新没有按预期工作。启动到较旧的内核“修复”了问题,但麻烦的是在每次启动时要去手动选择较旧的内核。
一位年长的读者遇到了这个问题。[Linux Mint][1] 中的新内核更新没有按预期工作。启动到较旧的内核“修复”了问题,但麻烦的是在每次启动时要去手动选择较旧的内核。
删除新内核而使用旧内核不是一个好主意,因为新内核将会在下一次系统更新时被安装使用。
@@ -31,11 +34,11 @@ apt list --installed | grep linux-image
当你升级系统时会获得一个新版本的内核,这时你的系统会自动选择启动至最新的可用内核。
在 [grub][3] 屏幕中,你可以 **转到<ruby>高级选项<rt>Advanced option</rt></ruby>**(或较旧的 Linux 版本):
在 [grub][3] 屏幕中,你可以转到<ruby>高级选项<rt>Advanced option</rt></ruby>较旧的 Linux 版本):
![ubuntu grub][4]
在这里,你可以看到要启动的可用内核。选择较旧的(不带<ruby>恢复选项<rt>recovery option</rt></ruby>
在这里,你可以看到要启动的可用内核。选择较旧的(不带<ruby>恢复选项<rt>recovery option</rt></ruby> 的条目
![grub 高级选项][5]
@@ -45,14 +48,14 @@ apt list --installed | grep linux-image
### 使旧内核成为默认启动项
如果你乐于使用 Linux 终端和命令,你可以修改 /etc/default/grub 文件并在其中添加以下行:
如果你乐于使用 Linux 终端和命令,你可以修改 `/etc/default/grub` 文件并在其中添加以下行:
```
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
```
然后使用如下命令 [更新 grub][6]
然后使用如下命令 [更新 GRUB][6]
```
sudo update-grub
@@ -82,7 +85,7 @@ sudo apt install grub-customizer
在这里你有两个选择。
**选择一:** 选择所需的内核项并使用箭头(显示在顶部菜单上)将其向上移动。
**选择一:** 选择所需的内核项并使用箭头按钮(显示在顶部菜单上)将其向上移动。
![在 Ubuntu grub 将旧内核向上移动][10]
@@ -92,11 +95,11 @@ sudo apt install grub-customizer
我建议使用第二个选择,因为即使有新的内核更新它也可以工作。
这样你就可以在 Ubuntu 或其他发行版中降级内核,甚至无需删除内核版本。
这样你就可以在 Ubuntu 或其他发行版中降级内核,甚至无需删除内核版本。
请注意,像 Ubuntu 这样的发行版大部分一次只保留两个内核版本。因此,最终你首选的旧内核将在新的内核版本释出时被删除。
这个巧妙的技巧曾助我脱困。当时我 [在 Ubuntu 中安装最新的 Linux 内核][12] ,由于某种原因它与我的音频系统有问题。
这个巧妙的技巧曾助我脱困。当时我 [在 Ubuntu 中安装最新的 Linux 内核][12] ,由于某种原因它与我的音频系统有些兼容问题。
无论是什么原因,你现在都知道如何自动启动到旧内核。
@@ -104,12 +107,12 @@ sudo apt install grub-customizer
--------------------------------------------------------------------------------
via: https://itsfoss.cm/boot-older-kernel-default/
via: https://itsfoss.com/boot-older-kernel-default/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,79 @@
[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman"
[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "TravinDreek"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14844-1.html"
自由软件基金会执行董事 Zoë Kooyman 专访
======
![](https://img.linux.net.cn/data/attachment/album/202207/19/151615wnr8m4l8yotr6hp8.jpg)
> 了解一下自由软件基金会FSF
早在 1985 年,[自由软件基金会][2]FSF就开始提倡源代码共享的理念并从此打响了为计算机用户和开发者捍卫权利的斗争。FSF 认为,用“<ruby>开放<rt>Open</rt></ruby>”和“<ruby>封闭<rt>Closed</rt></ruby>”这两个词来划分软件,十分具有局限性;于是,在为程序分类时,转而使用了以下词语:*尊重自由*(这个“<ruby>自由<rt>free</rt></ruby>”或这个“<ruby>自由<rt>Libre</rt></ruby>”)或*践踏自由*(“<ruby>非自由<rt>non-free</rt></ruby>”或“<ruby>专有<rt>proprietary</rt></ruby>”。不管用语如何关键之处在于计算机必须受用户控制而不是任由开发了计算机软件的公司来摆布。正因如此GNU 工程、Linux 内核、Freedesktop.org 等众多自由软件项目,才会如此重要。
最近FSF 新上任了一位执行董事,她叫 Zoë Kooyman。我初见 Zoë 时,是在 2019 年的一个 [All Things Open][3] 大会上。当然,那个时候她还不是 FSF 的执行董事,不过已经在管理 FSF 不断增长的重大活动了 —— 包括 [LibrePlant][4]。她之前递给我了一份自由软件作者的名单,名单长得一眼望不尽,而且那些软件都是我*每天*在用的。由此,我也很受她那充沛的精力和诚恳的态度所打动。我只是偶然参加了一次 FSF 的聚会,但最后却和那些人成了朋友。是他们让我的数字生活有了意义,是他们保障了我能够拥有 Zoë 和 FSF 所说的 [四项基本自由][5]
* 无论用户出于何种目的,用户必须可以按照自己的意愿,自由地运行该软件(自由之零)。
* 用户可以自由地学习并修改该软件,使它按照你的意愿进行计算(自由之一)。作为前提,用户必须可以得到该软件的源代码。
* 用户可以自由地分发该软件的副本,这样就可以帮助别人(自由之二)。
* 用户可以自由地分发该软件修改后的副本(自由之三)。借此,用户可以把改进后的软件分享给整个社区,令他人也从中受益。作为前提,用户必须可以得到该软件的源代码。
听说了 Zoë 受任为执行董事后,我给她发了一封邮件,提出想和她进行一次采访。她十分热心,在百忙之中抽出了一点时间来和我畅谈。
**Seth Kenlon你当上 FSF 的执行董事了!你是怎么走到今天的呢?**
**Zoë Kooyman** 在我的工作生涯中,我最开始是一位活动组织者。我环游世界,举办着一些世界上最大的音乐节目。在不断变更的地点、各具特色的文化中工作,是十分有趣的,因为不管是演出、技艺还是别的现场元素,所有各异的制作元素都结合在一起了。让一切事物都在恰当时候安排到位,就像是耍杂技一样。很多时候,我都是在不同的国家生活和工作。多亏了我的工作,我才能学到这么多的组织和交流的技巧。我也对不同形式的媒体有过研究和工作,了解它们的体验,以及它们与社会的关系。
大学时期,我第一次了解到了“<ruby>左版<rt>copyleft</rt></ruby>”LCTT 译注:与<ruby>版权<rt>copyright</rt></ruby>相对。是一种分享软件的思想和方法;简而言之,其目的是保障一款软件对其每一位接收者来说都是自由的),它是关于我们如何才能使用现有的结构来造福自己,并推动变革的。也正是在那时,媒体(以及互联网和软件)的格局开始迅速变化,而这种变化却是以自由为代价的。搬到美国后,我的生活变了许多。在美国,我对社会责任问题有了更加强烈的紧迫感,因此我决定为此付诸行动。我很感激 John Sullivan时任 FSF 执行董事),他根据我对自由软件的了解以及我在活动组织方面的经验聘任了我,由此我也得以把这两方面的能力结合到一起。
**Seth你是如何了解到自由软件的**
**Zoë** 我们常常会觉得自由软件主要影响的是懂技术的人。但是自由软件运动的目的是捍卫每一位计算机用户的自由。其实软件自由影响着边缘化社区LCTT 译注:因条件受限或受到排斥等,落后于主流社会的发展,而被置于社会边缘的群体)的成员,他们很少有机会使用计算机。而软件也塑造了他们的生活。
GNU 工程和左版的概念所取得的成就是十分卓越的。去真正观察社会发展的方向,然后说:“不一定非得那样才行,我们可以把事情掌握在自己手中。”这在早期改变了我的人生观。我开始有了一种想法,把现有的材料用起来,再把它重新引入不同的亚文化之中。在娱乐行业,这已是家常便饭。从他人的作品中得到灵感,并基于此创造新的作品,其结果就是对我们所处时代的反映,同时也是对历史的致敬。没有这般自由,也不会有真正的进步。
谈谈我对电影版权的看法吧。我曾经与荷兰电影研究所合作,做了一个由许多“孤立的电影片段”组合而成的混剪。然后,在一次有几千名年轻人参加的大型舞蹈活动中,那个混剪就在一个 170 米的全景屏幕上播放了,而且还有现场 DJ 在配合演奏。他们之后也经常在别的活动中播放它,比如说荷兰的 <ruby>博物馆之夜<rt>Museumnacht</rt></ruby>。
我并不懂技术,于是我通过文化来表达了这些观点。但这些年来,我越来越多地接触到了自由软件的思想。我于是意识到,随着软件不断融入我们的生活(有时还是身体),为自由软件而战的重要性正日益凸显。在当今的世界,专有软件处于称霸地位,我们社会的发展呈现出以利益驱动、为少数人着想的趋势,而这种趋势是以多数人的自由为代价的。如果没有自由软件,生活中的许多方面、社会的许多重要事业,就不可能真正取得成功。
**Seth** 你是什么时候加入 FSF 的?
**Zoë** 在 2019 年初LibrePlanet 最后一期现场版的前一周LCTT 译注LibrePlant 之后因为疫情而改成了线上活动)。
**Seth** 是什么吸引了你去担任执行董事这一职位?
**Zoë** FSF 只是一个致力于让社会更加公平、更加协作、更加理解软件的组织,但它长期以来一直是这场运动的核心。社会正在迅速变化,而许多人却还没准备好如何应对当今社会的数字产物,例如软件。这是一项十分重要的工作,但是去做这项工作的人还是太少了。能有一个组织来应对未来的各种挑战,这是十分重要的。
执行董事这一职位,在某种程度上,不过是辅助工作人员和社区的角色,好让他们为自由软件作出关键的改变。我相信,我们继续传播自由软件的思想,是非常重要的;并且,有了 FSF 的团队协助,我也相信,我能利用好工作在不同文化和人群中的经验,以及组织高挑战性的全球项目的经验,来使我们发挥出最大的潜能。我的这项决定,得到了来自工作人员、管理层和社区和董事会的支持,由此我相信,这个决定是正确的。
**Seth** 你认为当今的软件自由面临的最大的挑战是什么FSF 在应对这些挑战的时候,应该承担怎样的使命?
**Zoë** 随着软件越来越多地融入了社会的基本结构,软件也更加无形了。如今,软件的存在是如此的广泛,我们却习惯性地忽视它。我们只关注着程序的功能,却无视了实现这种功能的手段,更别说它尊不尊重你作为一位用户的自由了。而与此同时,软件又比以往任何时候都更快的扩散。如果人们无法理解程序是如何构成的,而只是整天地用着这些程序,那我们该怎么向他们解释,他们正遭受着不公呢?
FSF 的职责就是,让每个人重新谈起用户自由,并提醒人们,我们所使用的工具并没有那么好。因此,教育行业和政府的认可是十分重要的。如果我们让人们关注软件自由在这些领域的问题,那我们必将取得成效。通过教育,我们可以确保后代也有选择自由的权利;而政府采用自由软件,可以保护公民免遭专有软件的不正影响(维护数字主权)。
我们可以告诉人们,当今社会给我们灌输了错误的观点:你的自由受到侵犯是正常的,毕竟事情“太复杂,你理解不了”。如果你想要图个便利,想要相互联系,或者就是想要满足你的需求,那你就得相信这些组织,按照他们的意愿来。这是不对的。我们整个社区都相信,我们能构建一个无需抛弃自由也能处在其中的社会。并且我们也有这样的法律框架来支持我们的观点。每天,不同背景、不同能力的人都加入我们的对话,越来越多的人关心自己的自由,并且每个人都是出于真心的。我们每天都在学习如何去保护自己以及他人,并且我也希望,未来能够更加自由。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[Peaksol](https://github.com/TravinDreek)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg
[2]: https://www.fsf.org/
[3]: https://www.allthingsopen.org/
[4]: https://libreplanet.org
[5]: https://www.gnu.org/philosophy/free-sw.en.html

View File

@@ -0,0 +1,35 @@
[#]: subject: "Microsoft Opens Up The Microsoft Store To Usually Free And Open Source Applications"
[#]: via: "https://www.opensourceforu.com/2022/07/microsoft-opens-up-the-microsoft-store-to-usually-free-and-open-source-applications/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Microsoft Opens Up The Microsoft Store To Usually Free And Open Source Applications
======
![microsoft][1]
Microsoft has altered its store policies to assist some developers in making money from their programs. Following clarification from Microsoft, app developers are now permitted to upload open source and generally free apps to the Microsoft Store, provided that they were created by the party who would be using them or have obtained the necessary permission.
Apps cannot “try to profit from open source or other software that is usually generally available for free, nor be priced arbitrarily high relative to the features and capabilities supplied by your product,” according to an earlier version of the Microsoft Store regulations. The section of the policies that dealt with open source or free applications has been removed. To reflect its position on free and open source software in the Microsoft Store, Microsoft amended policy 11.2. Currently, it says (opens in new tab):
“All content in your product and associated metadata must be either originally created by the application provider, appropriately licensed from the third-party rights holder, used as permitted by the rights holder, or used as otherwise permitted by law. Reporting infringement complaints can be done via our online form.”
Microsoft claims that this was always the companys intention. Giorgio Sardo, general manager of apps, partners, and the Microsoft Store at Microsoft, stated that the company wants to encourage open-source developers after developers and community members objected to the initial policy change. According to a Microsoft representative, “Weve been working hard over the past year to improve consumer experiences while keeping the Store available to all developers. This policy update is an extension of that effort and is intended to give developers more options while enhancing the user experience.”
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/07/microsoft-opens-up-the-microsoft-store-to-usually-free-and-open-source-applications/
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/07/microsoft-1-e1658233374530.jpg

View File

@@ -0,0 +1,90 @@
[#]: subject: "Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!"
[#]: via: "https://news.itsfoss.com/ubuntu-21-10-eol/"
[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu 21.10 Has Reached End-of-Life, Upgrade Now!
======
Ubuntu 21.10 has reached end-of-life on 14th of July. Backup your files before starting an upgrade!
![ubuntu 22 10][1]
While [Ubuntu 21.10][2]was the only way to experience GNOME 40 back then, it brought a newer kernel and high-quality Bluetooth codecs.
Unfortunately, it reached end-of-life on the **14th of July**, meaning you will no longer receive any updates for it.
So its time to upgrade!
I know, for some, its not much time since you switched to Ubuntu 21.10, but its not an LTS release. So, it had only nine months of support after its release.
If you want to know about the release and update cycles, you can check out our [guide on end-of-life][3].
When writing this article, theres only one option available: **[Ubuntu 22.04 LTS.][4]**
[Ubuntu 22.04 LTS is different from Ubuntu 20.04][5] in several ways and offers a bunch of new features.
### Upgrading to Ubuntu 22.04 LTS
Unless you are going to use your system completely offline, you must upgrade to Ubuntu 22.04 as it would protect you against the latest security vulnerabilities.
In fact, Ubuntu 22.04 LTS is the [most secure release yet][6].
There are plenty of other reasons why you should upgrade, including user experience improvements, better performance, and newer hardware support.
Not to forget, [Long-Term Support Release][7] edition gives you up to 5 years of software updates, and 10 years of maintenance updates, ensuring the stability you need for production.
Whether you use your system/server for personal or commercial use.
**Heres how to upgrade:**
You can look for **“Software Updater**” from the app menu and click on it to proceed with the latest upgrade.
If you prefer the terminal, type in the command to start the update manager:
```
update-manager -c
```
In either case, type in the following from the terminal:
```
sudo do-release-upgrade
```
You will be informed that your system is out of support and will be upgraded to Ubuntu 22.04 LTS. Just click on the upgrade button, and the update manager will take care of it.
### Ubuntu 22.04 Upgrade and Beyond
As always, there are plenty of alternatives to Ubuntu 22.04 LTS, including [official Ubuntu flavors][8]. And, if you want something different in Ubuntu space, I highly recommend [Pop!_OS 22.04 LTS.][9]
With the upgrade, you should enjoy the new GNOME 42 experience, a newer kernel, and a better user experience compared to 21.10 and bundled with [new features.][10]
Sure, you are not going to be disappointed!
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/ubuntu-21-10-eol/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/sagar/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/07/ubuntu-22-10-eol.jpg
[2]: https://news.itsfoss.com/ubuntu-21-10-release/
[3]: https://itsfoss.com/end-of-life-ubuntu/
[4]: https://news.itsfoss.com/ubuntu-22-04-release/
[5]: https://itsfoss.com/ubuntu-20-04-vs-22-04/
[6]: https://news.itsfoss.com/reasons-ubuntu-22-04-secure/
[7]: https://itsfoss.com/long-term-support-lts/
[8]: https://itsfoss.com/which-ubuntu-install/
[9]: https://news.itsfoss.com/pop-os-22-04-release/
[10]: https://itsfoss.com/ubuntu-22-04-release-features/

View File

@@ -0,0 +1,192 @@
[#]: subject: "5 Best and Free Desktop Email Clients for Linux and Windows"
[#]: via: "https://www.debugpoint.com/best-email-client-linux-windows/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
5 Best and Free Desktop Email Clients for Linux and Windows
======
If you are looking for free Email clients for Linux and Windows here are 5 of them we list that you can try and consider for casual or professional uses.
Web-based email is popular today and can be accessed via browsers or mobile apps. However, in big and medium enterprises, generic users still prefer native desktop email clients for heavy and office uses. Microsoft Outlook is the most popular desktop email client, which is, of course, not free, and you have to pay a huge licence fee to use it.
There are multiple options for free desktop email clients available. Here are the best 5 free and open source email clients you can try and then deploy for your needs.
### Quick Snapshot
Here is a quick glimpse of 5 email desktop clients before you read the features and choose yourself.
| Best Email Client Programs | Price | Platforms | Snap | Flatpak |
| :- | :- | :- | :- | :- |
| Thunderbird | FREE | Linux, Mac and Windows | Yes | Yes |
| Evolution | FREE | Linux | No | Yes |
| Geary | FREE | Linux | No | Yes |
| Claws Mail | FREE | Linux, Mac and Windows | Yes | No |
| SeaMonkey | FREE | Linux, Mac and Windows | No | No |
### 5 Best Free Email Clients for Linux
#### 1. Thunderbird
Mozilla Foundation developed Thunderbird is the best free, open-source, cross-platform email client available today. It comes with email, chat support, an RSS reader and other features.
![Thunderbird email client][1]
A quick summary of Thunderbirds features:
##### Features
* Email with POP, IMAP, and LDAP support
* Fast Search, Saved Search
* Spam filtering
* Security support via TLS/SSL connection to mail servers
* Secure email support via S/MIME
* Calendar Support via Lightning extension Can integrate Google Calendar
* Microsoft Exchange Server integration with Paid extensions Owl
* HTML support in emails
* Desktop Notification
* Feature addition via Extensions
* Theme Support
* Multiple Language support
##### How to Download
You can download Thunderbird from the official page.
[Download Thunderbird][2]
#### 2. Evolution
[Evolution][3], the GNOME project, combines email, address book, calendar, and task manager features. Evolution is free and open-source software available for Linux systems.
![Evolution email client][4]
Here are some of its features:
##### Features
* POP, IMAP and SMTP Support
* Secure network connection with SSL, TLS
* Automatic spam filtering
* Advanced email search
* Exchange server support using plug-ins
* Calendar support using Google Calendar and iCalendar
* Contact management with local address books and Google address books
##### How to Download and install
In Ubuntu-based Linux systems, you can install Evolution from the below commands from the terminal. Or from Software. Run the below commands from terminal to install Evolution in Ubuntu-based systems:
```
sudo apt install evolution evolution-ews
```
Note: evolution-ews is to connect to Microsoft Exchange.
#### 3. Geary
[Geary][5] is a free and open-source email client for Linux. Written in Vala with WebKitGtk, Geary is different from other desktop email clients.
![Geary email client][6]
##### Features
* Conversation View for emails
* Supports IMAP servers GMAIL, Yahoo! Mail, Outlook.com
* Send as another identity
* HTML Support in email
* Search with options
* Desktop notifications
##### How to Download
Geary is available for Linux only. For Ubuntu-based systems, search geary in software and click install. You can also install via command line using below commands in Ubuntu based systems.
```
sudo apt install geary
```
#### 4. Claws Mail
[Claws Mail][7] is a free and open source GTK+ based email client with easy configuration and many features. It supports and stores email in MH mailbox format. Claws email is available for Windows and Linux.
![Claws email][8]
##### Features
* Secured email client with SSL and GPG support
* Search and filtering
* Customizable toolbar and themes support
* Templates and plug-in
* Support for PDF viewer, HTML, Calendar, Anti-spam filtering using plug-ins
##### How to Download
All download options for Windows and Linux are available in the link below via the official website.
[Download Claws mail][9]
#### 5. SeaMonkey
[SeaMonkey][10] is a free and open-source internet suite, and SeaMonkey mail is a component of the same. It keeps the traditional looks of an email client, and it is available in Windows, Linux and Mac. SeaMonkey mail shares code from Mozilla Thunderbird.
![Sea Monkey][11]
Here are some of its features.
##### Features
* Multiple email account support
* Junk email detection
* HTML support in email messages
* Message filters
* Address books
##### How to download
Download SeaMonkey via below link via the official website.
[Download SeaMonkey][12]
### Summary
While wrapping up the best email clients for Linux, I would recommend Thunderbird for serious work and enterprise-wide deployment, if needed, along with casual users. However, you can still try other four as per your need and choice.
I purposefully did not include several below email clients in this article due to not-so-good user feedback and some of them are not free.
* Sylpheed
* Zimbra
* Mutt
* Mailspring
* Hiri (paid)
So, what are the best email clients for Linux? Let me know in the comment box below.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/best-email-client-linux-windows/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2019/06/Thunderbird.png
[2]: https://www.thunderbird.net/
[3]: https://wiki.gnome.org/Apps/Evolution
[4]: https://www.debugpoint.com/wp-content/uploads/2019/06/Evolution.png
[5]: https://wiki.gnome.org/Apps/Geary
[6]: https://www.debugpoint.com/wp-content/uploads/2019/06/Geary.png
[7]: https://www.claws-mail.org/
[8]: https://www.debugpoint.com/wp-content/uploads/2019/06/Claws-mail.png
[9]: https://www.claws-mail.org/downloads.php?section=downloads
[10]: http://www.seamonkey-project.org/
[11]: https://www.debugpoint.com/wp-content/uploads/2019/06/SeaMonkey-Mail.png
[12]: http://www.seamonkey-project.org/releases/

View File

@@ -0,0 +1,391 @@
[#]: subject: "Community container images available for applications development"
[#]: via: "https://fedoramagazine.org/community-container-images-available-for-applications-development/"
[#]: author: "Petr Hracek https://fedoramagazine.org/author/phracek/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Community container images available for applications development
======
![][1]
Photo by [Paul Teysen][2] on [Unsplash][3]
This article aims to introduce community containers, where users can pull them from, and use them. The three groups of containers available for use by community users are discussed. These are: Fedora, CentOS, and CentOS Stream.
### What are the differences between the containers?
Fedora containers are based on the latest stable Fedora content, and CentOS-7 containers are based on components from the CentOS-7 and related SCLo SIG components. And finally, CentOS Stream containers are based on either CentOS Stream 8 or CentOS Stream 9.
Each container, e.g. [s2i-php-container][4] or [s2i-perl-container][5], contain the same packages which are available for a given operating system. It means, that from a functionality point of view these example containers provides the PHP interpreter or Perl interpreter,respectively. 
Differences can be only in versions, which are available for each distribution. For example:
Fedora PHP containers are available in these versions:
* [PHP-80][6] for Fedora 35
CentOS-7 PHP containers are available in these versions:
* [PHP-73][7]
CentOS Stream 9 PHP containers are available in these versions:
* [PHP-74][8]
CentOS Stream 8 is not mentioned here for the PHP use case since users can pull it directly from the Red Hat Container Catalog registry as a [UBI][9] image. Containers that are not UBI based have CentOS Stream 8 repositories in the [quay.io/sclorg][10] namespace with repository suffix “-c8s”.
### Fedora container images moved recently
The Fedora container images have recently moved to the [quay.io/fedora][11] registry organization. All of them use [Fedora:35][12], and later [Fedora:36 ,][13]as a base image. The CentOS-7 containers are stored in the [quay.][14][io][14][/centos7][14] registry organization. All of them use [CentOS][15][-7][15] as a base image.
### CentOS Stream container images
The CentOS Stream containers are stored in the [quay.io/sclorg][10] registry organization.
The base image used for our CentOS Stream 8 containers is [CentOS Stream 8][16] with the tag “stream8”.
The base image used for our CentOS Stream 9 containers is [CentOS Stream 9][16] with the tag “stream9”.
In this registry organization, each container contains a “suffix”, either “c8s”  for CentOS Stream 8 or “c9s” for CentOS Stream 9, respectively.
See container [PHP-74][8] for CentOS Stream 9.
### Frequency of container image updates and testing
The community-based containers are updated in two ways.
First, when a pull request in the container sources that live under github.com/sclorg organization is merged, the corresponding versions in the GitHub repository are built and pushed into the proper repository.
Second, an update process is also implemented by GitHub Actions set up in each of our GitHub repositories. The base images, like “s2i-core” and “s2i-base”, are built each Tuesday at 1:00 pm. The rest of the containers are built each Wednesday at 1:00 pm.
This means every package update or change is updated in the container image within a few days, not later than after a week.
Each container that is not beyond its end of life is tested by our nightly builds. If we discover or detect an error on some of our containers, we attempt to fix it, but there are no guarantees provided.
### What container shall I use?
In the end, what containers are we providing? Thats a great question. All containers live in the GitHub organization <https://github.com/sclorg>
The list of containers with their upstreams is summarized here:
* PostgreSQL server <https://github.com/sclorg/postgresql-container>
* Nginx web server <https://github.com/sclorg/nginx-container>
* Redis server <https://github.com/sclorg/redis-container>
* Varnish cache <https://github.com/sclorg/varnish-container>
* MySQL server <https://github.com/sclorg/mysql-container>
* MariaDB server <https://github.com/sclorg/mariadb-container>
* Apache HTTPD server <https://github.com/sclorg/httpd-container>
* PHP application container image <https://github.com/sclorg/s2i-php-container>
* Perl application container image [https://][5][github][5][.com/sclorg/s2i-perl-container][5]
* Ruby application container image <https://github.com/sclorg/s2i-ruby-container>
* Node.js application container image <https://github.com/sclorg/s2i-nodejs-container>
* Python application container image <https://github.com/sclorg/s2i-python-container>
### How to use the container image I picked?
All container images are tuned up to be fully functional in the OpenShift (or [OKD][17] and even Kubernetes itself) without any trouble. Some containers support the source-to-image build strategy while some are expected to be used as daemons (like databases, for instance). For specific steps, please, navigate to the GitHub page for the respective container image by following one of the links above.
### Finally, Some Real examples
Lets show how to use PHP container images across all platforms that we support.
First of all, clone the container GitHub repository using this command:
```
$ git clone https://github.com/sclorg/s2i-php-container
```
Switch to the following directory created by the cloning step:
```
$ cd s2i-php-container/examples/from-dockerfile
```
#### Fedora example
Start by pulling the Fedora PHP-80 image with this command:
```
$ podman pull quay.io/fedora/php-80
```
Modify “Dockerfile” so it refers to Fedora php-80 image. “Dockerfile” then looks like:
```
FROM quay.io/fedora/php-80
USER 0
# Add application sources
ADD app-src .
RUN chown -R 1001:0 .
USER 1001
# Install the dependencies
RUN TEMPFILE=$(mktemp) && \
curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \
php <"$TEMPFILE" && \
./composer.phar install --no-interaction --no-ansi --optimize-autoloader
# Run script uses standard ways to configure the PHP application
# and execs httpd -D FOREGROUND at the end
# See more in <version>/s2i/bin/run in this repository.
# Shortly what the run script does: The httpd daemon and php need to be
# configured, so this script prepares the configuration based on the container
# parameters (e.g. available memory) and puts the configuration files into
# the appropriate places.
# This can obviously be done differently, and in that case, the final CMD
# should be set to "CMD httpd -D FOREGROUND" instead.
CMD /usr/libexec/s2i/run
```
##### Check if the application works properly
Build it by using this command:
```
$ podman build -f Dockerfile -t cakephp-app-80
```
Now run the application using this command:
```
$ podman run -ti --rm -p 8080:8080 cakephp-app-80
```
To check the PHP version use these commands:
```
$ podman run -it rm cakephp-app-80 bash
$ php version
```
To check if everything works properly use this command:
```
$ curl -s -w %{http_code} localhost:8080
```
This should return HTTP code 200. If you would like to see a web page enter “localhost:8080” in your browser.
#### CentOS 7 example
Start by pulling the CentOS-7 PHP-73 image using this command:
```
$ podman pull quay.io/centos7/php-73-centos7
```
Modify “Dockerfile” so it refers to CentOS php-73 image.
“Dockerfile” then looks like this:
```
FROM quay.io/centos7/php-73-centos7
USER 0
# Add application sources
ADD app-src .
RUN chown -R 1001:0 .
USER 1001
# Install the dependencies
RUN TEMPFILE=$(mktemp) && \
curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \
php <"$TEMPFILE" && \
./composer.phar install --no-interaction --no-ansi --optimize-autoloader
# Run script uses standard ways to configure the PHP application
# and execs httpd -D FOREGROUND at the end
# See more in <version>/s2i/bin/run in this repository.
# Shortly what the run script does: The httpd daemon and php needs to be
# configured, so this script prepares the configuration based on the container
# parameters (e.g. available memory) and puts the configuration files into
# the appropriate places.
# This can obviously be done differently, and in that case, the final CMD
# should be set to "CMD httpd -D FOREGROUND" instead.
CMD /usr/libexec/s2i/run
```
##### Check if the application works properly
Build it using this command:
```
$ podman build -f Dockerfile -t cakephp-app-73
```
Now run the application using this command:
```
$ podman run -ti --rm -p 8080:8080 cakephp-app-73
```
To check the PHP version us these commands:
```
$ podman run -it rm cakephp-app-73 bash
$ php version
```
To check if everything works properly use this command:
```
curl -s -w %{http_code} localhost:8080
```
which should return HTTP code 200. If you would like to see a web page enter localhost:8080 in your browser.
#### RHEL 9 UBI 9 real example
Start by pulling the RHEL9 UBI-based PHP-80 image using the command:
```
$ podman pull registry.access.redhat.com/ubi9/php-80
```
Modify “Dockerfile” so it refers to the RHEL9 ubi9 php-80 image.
“Dockerfile” then looks like:
```
FROM registry.access.redhat.com/ubi9/php-80
USER 0
# Add application sources
ADD app-src .
RUN chown -R 1001:0 .
USER 1001
# Install the dependencies
RUN TEMPFILE=$(mktemp) && \
curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \
php <"$TEMPFILE" && \
./composer.phar install --no-interaction --no-ansi --optimize-autoloader
# Run script uses standard ways to configure the PHP application
# and execs httpd -D FOREGROUND at the end
# See more in <version>/s2i/bin/run in this repository.
# Shortly what the run script does: The httpd daemon and php needs to be
# configured, so this script prepares the configuration based on the container
# parameters (e.g. available memory) and puts the configuration files into
# the appropriate places.
# This can obviously be done differently, and in that case, the final CMD
# should be set to "CMD httpd -D FOREGROUND" instead.
CMD /usr/libexec/s2i/run
```
##### Check if the application works properly
Build it using this command:
```
$ podman build -f Dockerfile -t cakephp-app-80-ubi9
```
Now run the application using this command:
```
$ podman run -ti --rm -p 8080:8080 cakephp-app-80-ubi9
```
To check the PHP version use these commands:
```
$ podman run -it rm cakephp-app-80-ubi9 bash
$ php version
```
To check if everything works properly use this command:
```
curl -s -w %{http_code} localhost:8080
```
which should return HTTP code 200. If you would like to see a web page enter localhost:8080 in your browser.
### What to do in the case of a bug or enhancement
Just file a bug (known as an “issue” in GitHub) or even a pull request with a fix, to one of the GitHub repositories mentioned in the previous section.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/community-container-images-available-for-applications-development/
作者:[Petr Hracek][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/phracek/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2022/07/RHSCL_containers-816x345.jpg
[2]: https://unsplash.com/@hooverpaul55?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[3]: https://unsplash.com/s/photos/container-port?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[4]: https://github.com/sclorg/s2i-php-container
[5]: https://github.com/sclorg/s2i-perl-container
[6]: https://quay.io/repository/fedora/php-80
[7]: https://quay.io/repository/centos7/php-73-centos7
[8]: https://quay.io/repository/sclorg/php-74-c9s
[9]: https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image
[10]: https://quay.io/organization/sclorg
[11]: https://quay.io/organization/fedora
[12]: http://quay.io/fedora/fedora:35
[13]: http://quay.io/fedora/fedora:36
[14]: https://quay.io/organization/centos7
[15]: http://quay.io/centos/centos:centos7
[16]: https://quay.io/repository/centos/centos
[17]: https://developers.redhat.com/blog/2018/08/03/okd-renaming-of-openshift-origin-with-3-10-release#

View File

@@ -0,0 +1,257 @@
[#]: subject: "Top 10 Best Professional Video Editors in 2022"
[#]: via: "https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Top 10 Best Professional Video Editors in 2022
======
We list the top 10 best and most free video editors for Linux and Windows. Have a look.
[Video editors][1] are costly software, especially those that are more advanced such as Adobe Premiere Pro. However, there are plenty of known/unknown Video Editors available, which are free of cost and open source. Here we list ten free video editors which might be helpful for you and your use case.
### Top 10 Professional and Free Video Editors
#### 1. Blender
[Blender][2]is a free and open-source video editor and 3D modelling software used to create movies, animated films, renders, simulations, motion tracking and many more. Blender is a popular tool used and contributed by hundreds of people worldwide. Primarily used by studios and individual artists, professionals and hobbyists, scientists, students, VFX experts, animators, game artists, modders, and the list goes on.
![Blender Video Editor][3]
Blenders feature list is enormous; however, here are some noteworthy features.
* Modelling
* Sculpting
* Animation & Rigging
* Grease Pencil
* Rendering
* Simulation
* Video Editing
* Scripting
* VFX
* Interface
* Pipeline
[Download Blender][4]
#### 2. Lightworks
[Lightworks][5]is a freemium video editor capable of editing videos for social media, 4K videos and movies. Lightworks has been used in some famous Hollywood movie editing as well. This non-linear video editor is free to download, and you might have to pay for additional features.
![Lightworks Video Editor][6]
Heres a quick sneak peek of its features:
* Simple & intuitive User Interface
* Access excellent royalty-free audio & video content
* Easy timeline editing & trimming
* Lo-Res Proxy workflows for 4K
* Real-time ready-to-use audio & video FX
* Export video for YouTube/Vimeo, SD/HD, up to 4K
* Broad file format support, including variable frame rate media
* Grade your sequence professionally utilising up to 32bit GPU precision and histogram tool
[Download Lightworks][7]
#### 3. Shotcut
[Shotcut][8]is another free, open source and cross-platform video editor loaded with features. Primary features include support for a wide range of formats; no import required, meaning native timeline editing; Blackmagic Design support for input and preview monitoring; and resolution support to 4k.
![Shotcut Video Editor][9]
Notable features of Shotcut:
* Support for 4K resolutions
* Audio, Video, and Webcam capture
* Wide range of file format support
* $K resolution support
* Plugins
* Audio and Video filters
[Download Shotcut][10]
#### 4. Avidemux
[Avidemux][11] is ideal for you if you are just a beginner in Video editing, learning, or a hobbyist. This free and open-source video editor is designed for simple cut, filter and encoding tasks. Being a basic video editor, it supports a wide range of file formats. Also, you can automate tasks using projects, job queues and powerful scripting capabilities.
![Avidemux Video Editor][12]
[Download Avidemux][13]
#### 5. HitFilm Express
[HitFilm Express][14] is an excellent video editor freely available for download as the name says the express version. Loaded with features and developed professionally, HitFilm express is an ideal video editor for beginners, YouTube creators and movie makers. However, it is only available for Windows and Mac. Linux version is not yet profitable, as per the development team, considering the low user base.
![Hitfilm Express Video Editor][15]
Having said that, if you are still looking for a free and professional video editor, you can try HitFilm express. Please note that you may have to pay if you opt for a different version of the product with more features.
[Download HitFilm Express][16]
#### 6. DaVinci Resolve
This is the most professional video editor capable of 8K editing. Available for Linux, Mac and Windows, DaVinci Resolve is a Proprietary commercial software. It comes with a studio version, and a paid variant with additional features such as more plugins, addons, etc. However, you can still use the free version of the software, which is more than enough if you are a standard user.
![DaVinci Resolve Video Editor][17]
Heres a quick feature guide.
* Dual Timeline
* Source Tape
* Dedicated Trim Interface
* Intelligent Edit Modes
* Fast Review
* Transform, Retime and Stabilise
* Quick Export
* Media Import
* Portable Editing
* Custom Timeline Settings
* Adjustment Clips
* Facial Recognition
* Speed Warp Retiming
* Image Stabilisation
* Keyframe Curve Editor
* Tape Style Audio Scrubbing
* Faster, Smarter Encoding
[Download DaVinci Resolve][18]
#### 7. OpenShot
If you are looking for a simple UI-based free video editor yet powerful, [OpenShot][19]is the choice. Designed with a mindset with a low learning curve for video editing it is available for Windows, Linux and Mac.
![OpenShot Video Editor][20]
Heres a quick rundown on its features:
* Cross-Platform
* Quickly trim down your videos
* Using the robust animation framework, you can fade, slide, bounce, and animate anything in your video project
* Add as many layers as you need for watermarks, background videos, audio tracks
* Video effects engine, remove the background from your video, invert the colours, adjust brightness
* Audio Waveforms
* Title editor with templates
* Render beautiful 3D animated titles and effects, such as snow, lens flares, or flying text.
* Control the power of time, reversing, slowing down, and speeding up video
* Use a preset or animate the playback speed and direction.
* Drag and drop video, audio, or images from your file manager
* 70+ Languages
* Simple User Interface
If you are a beginner in Video Editing and trying it out the first time, this is the editor you should be using to get a feel of it.
[Download OpenShot][21]
#### 8. KDenlive
[KDenlive][22]is a 15+ years old video editor application. KDenlive is a free and open-source video editor built upon the QT framework, powered by some of the best FFMpeg, frei0r, movie, ladspa, and sox frameworks. This video editor is for average users with some additional advanced features but not too much to absorb and learn.
Some of its features include:
* Multi-track video editing
* Use any audio/video format
* Configurable interface and shortcuts
* Titler with 2D Title
* Many effects and transitions
* Audio and video scopes
* Proxy editing
* Automatic backup
* Online resources downloaded directly from UI
* Timeline preview
* Keyframeable effects
* Theme interface
![KDenlive Video Editor][23]
[Download KDenlive][24]
#### 9. Flowblade
“FAST, PRECISE and STABLE” is the tagline of [Flowblade][25]video editor, which explains its target users. Flowblade is a non-linear video editor loaded with features such as
* Edit tools
* Timeline features
* Compositors
* Filters
* Range log
* Proxy editing
* Batch render queue
* Gmic effects tool
* Audio mixer
* Media relinker
* Titler
* Misc. Features
* Rendering
* MLT supported video and audio codecs
![Flowblade Video Editor][26]
Flowblade is only available for Linux Systems and not for Windows or Mac.
[Download Flowblade][27]
#### 10. Olive
[Olive][28]is a free non-linear video editor aiming to provide a fully-featured alternative to high-end professional video editing software. It is being developed at the moment and in the ALPHA stage. Looking at the interests, it[seems promising][29], and users are creating videos via Olive. However, being an ALPHA version, it is not recommended for professional work at the moment, but you can still give it a try.
![Olive Video Editor][30]
Available for Windows, Linux and Mac, you can download it via the below link.
[Download Olive Video Editor][31]
### Wrap up
Video editors are complex software. Many professional editors are costly. With that said, here we featured the top 10 professional-grade video editors for you. Some are perfect if used correctly and can replace any professional program. For example, Blender, KDenlive and DaVinci Resolve are perfect for creating professional-grade videos or movies.
So, which is the top professional grade video editor, in your opinion? Let me know in the comment box below.
*Image Credits: Respective applications.*
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/tag/video-editors-in-ubuntu/
[2]: https://www.blender.org/
[3]: https://www.debugpoint.com/wp-content/uploads/2019/09/Blender-Video-Editor.jpg
[4]: https://www.blender.org/download/
[5]: https://www.lwks.com/
[6]: https://www.debugpoint.com/wp-content/uploads/2019/09/Lightworks-Video-Editor-1024x557.jpg
[7]: https://www.lwks.com/index.php?option=com_lwks&view=download&Itemid=206
[8]: https://shotcut.org
[9]: https://www.debugpoint.com/wp-content/uploads/2019/09/Shotcut-Video-Editor-1024x644.jpg
[10]: https://shotcut.org/download/
[11]: http://avidemux.sourceforge.net/
[12]: https://www.debugpoint.com/wp-content/uploads/2019/09/Avidemux-Video-Editor.png
[13]: http://avidemux.sourceforge.net/download.html
[14]: https://fxhome.com/hitfilm-express
[15]: https://www.debugpoint.com/wp-content/uploads/2019/09/Hitfilm-Express-Video-Editor-1024x572.jpg
[16]: https://fxhome.com/hitfilm-express
[17]: https://www.debugpoint.com/wp-content/uploads/2019/09/DaVinci-Resolve-Video-Editor.jpg
[18]: https://www.blackmagicdesign.com/products/davinciresolve/
[19]: https://www.openshot.org/
[20]: https://www.debugpoint.com/wp-content/uploads/2019/09/OpenShot-Video-Editor.jpg
[21]: https://www.openshot.org/download/
[22]: https://kdenlive.org
[23]: https://www.debugpoint.com/wp-content/uploads/2019/09/KDenlive-Video-Editor--1024x579.jpg
[24]: https://kdenlive.org/en/download/
[25]: https://jliljebl.github.io/flowblade/
[26]: https://www.debugpoint.com/wp-content/uploads/2019/09/Flowblade-Video-Editor-1024x579.jpg
[27]: https://jliljebl.github.io/flowblade/download.html
[28]: https://www.olivevideoeditor.org
[29]: https://www.debugpoint.com/olive-0-2-video-editor-review/
[30]: https://www.debugpoint.com/wp-content/uploads/2019/09/Olive-Video-Editor-1024x576.jpg
[31]: https://www.olivevideoeditor.org/download.php

View File

@@ -0,0 +1,228 @@
[#]: subject: "Code your first React UI app"
[#]: via: "https://opensource.com/article/22/7/code-first-react-app"
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Code your first React UI app
======
Learn to make back-end and front-end development work together with this JavaScript tutorial.
Who wants to create their first UI app? I do, and if you're reading this article, I assume you do, too. In today's example, I'll use some JavaScript and the [API with Express][2] I demonstrated in my previous article. First, let me explain some of the tech you're about to use.
### What is React?
React is a JavaScript library for building a user interface (UI). However, you need more than just the UI library for a functional UI. Here are the important components of the JavaScript web app you're about to create:
* npx: This package is for executing npm packages.
* axios: A promise-based HTTP client for the browser and node.js. A promise is a value that an API endpoint will provide.
* http-proxy-middleware: Configures proxy middleware with ease. A proxy is middleware that helps deal with messaging back and forth from the application endpoint to the requester.
### Preconfiguration
If you haven't already, look at my [previous article][3]. You'll use that code as part of this React app. In this case, you'll add a service to use as part of the app. As part of this application, you have to use the `npx` package to create the new folder structure and application:
```
$ npx create-react-app count-ui
npx: installed 67 in 7.295s
Creating a new React app in /Users/cherrybomb/count-ui.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...
[...]
Installing template dependencies using npm...
+ @testing-library/jest-dom@5.16.4
+ @testing-library/user-event@13.5.0
+ web-vitals@2.1.4
+ @testing-library/react@13.3.0
added 52 packages from 109 contributors in 9.858s
[...]
Success! Created count-ui at /Users/cherrybomb/count-ui
[...]
We suggest that you begin by typing:
  cd count-ui
  npm start
```
As you can see, the `npx` command has created a new template with a folder structure, an awesome `README` file, and a Git repository. Here's the structure:
```
$ cd count-ui/
/Users/cherrybomb/count-ui
$ ls -A -1
.git
.gitignore
README.md
node_modules
package-lock.json
package.json
public
src
```
This process also initialized the Git repo and set the branch to master, which is a pretty cool trick. Next, install the `npm` packages:
```
$ npm install axios http-proxy-middleware
[...]
npm WARN @apideck/better-ajv-errors@0.3.4 requires a peer of ajv@>=8 but none is installed. You must install peer dependencies yourself.
+ http-proxy-middleware@2.0.6
+ axios@0.27.2
added 2 packages from 2 contributors, updated 1 package and audited 1449 packages in 5.886s
```
Now that those are set up, add your `services`, and `main.js` file:
```
$ mkdir src/services
src/services
$ touch src/services/main.js
```
Preconfiguration is now complete, so you can now work on coding.
### Code a UI from start to finish
Now that you have everything preconfigured, you can put together the service for your application. Add the following code to the `main.js` file:
```
import axios from 'axios';
const baseURL = 'http://localhost:5001/api';
export const get = async () => await axios.get(`${baseURL}/`);
export const increment = async () => await axios.post(`${baseURL}/`);
export default {
    get,
    increment
}
```
This process creates a JavaScript file that interacts with the API you created in my previous article.
### Set up the proxy
Next, you must set up a proxy middleware by creating a new file in the `src` directory.
```
$ touch src/setupProxy.js
```
Configure the proxy with this code in `setupProxy.js` :
```
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:5000',
      changeOrigin: true,
    })
  );
};
```
In this code, the `app.use` function specifies the service to use as `/api` when connecting to the existing API project. However, nothing defines `api` in the code. This is where a proxy comes in. With a proxy, you can define the `api` function on the proxy level to interact with your Express API. This middleware registers requests between both applications because the UI and API use the same host with different ports. They require a proxy to transfer internal traffic.
### JavaScript imports
In your base `src` directory, you see that the original template created an `App.js`, and you must add `main.js` (in the `services` directory) to your imports in the `App.js` file. You also need to import React on the very first line, as it is external to the project:
```
import React from 'react'
import main from './services/main';
```
### Add the rendering function
Now that you have your imports, you must add a render function. In the **App()** function of `App.js`, add the first section of definitions for **react** and **count** before the **return** section. This section gets the **count** from the API and puts it on the screen. In the **return** function, a button provides the ability to increment the count.
```
function App() {
const [count, setCount] = React.useState(0);
React.useEffect(()=>{
  async function fetchCount(){
    const newCount = (await main.get()).data.count;
    setCount(newCount);
  }
  fetchCount();
}, [setCount]);
return (  
    <div className="App">
      <header className="App-header">
        <h4>
          {count}
        </h4>
        <button onClick={async ()=>{
          setCount((await main.increment()).data.count);
        }}>
          Increment
        </button>
      </header>
    </div>
  );
}
```
To start and test the app, run `npm run start`. You should see the output below. Before running the application, confirm your API is running from the Express app by running node `./src/index.js`.
```
$ npm run start
> count-ui@0.1.0 start /Users/cherrybomb/count-ui
> react-scripts start
[HPM] Proxy created: /  -> http://localhost:5000
(node:71729) [DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning: 'onAfterSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:71729) [DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning: 'onBeforeSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
Starting the development server...
```
Once everything is running, open your browser to `localhost:5000` to see the front end has a nice, admittedly minimal, page with a button:
![Counter at zero][4]
Image by:
(Jessica Cherry, CC BY-SA 4.0)
What happens when you press the button? (Or, in my case, press the button several times.)
![Counter at four][5]
Image by:
(Jessica Cherry, CC BY-SA 4.0)
The counter goes up!
Congratulations, you now have a React app that uses your new API.
### Web apps and APIs
This exercise is a great way to learn how to make a back end and a front end work together. It's noteworthy to say that if you're using two hosts, you don't need the proxy section of this article. Either way, JavaScript and React are a quick, templated way to get a front end up and running with minimal steps. Hopefully, you enjoyed this walk-through. Tell us your thoughts on learning how to code in JavaScript.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/code-first-react-app
作者:[Jessica Cherry][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/cherrybomb
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-window-focus.png
[2]: https://opensource.com/article/22/7/javascript-api-express
[3]: https://opensource.com/article/22/7/javascript-api-express
[4]: https://opensource.com/sites/default/files/2022-07/counter0.png
[5]: https://opensource.com/sites/default/files/2022-07/counter4.png

View File

@@ -0,0 +1,100 @@
[#]: subject: "Event-driven architecture explained in a coloring book"
[#]: via: "https://opensource.com/article/22/7/event-driven-architecture-coloring-book"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Event-driven architecture explained in a coloring book
======
Event-driven architecture is no small topic. A coloring book is a perfect way to explain its complexity in a friendly manner. Download this coloring book about event-driven architecture
"Explain it to me like I'm five."
When you want someone to get to the point as efficiently and as clearly as possible, that's what you say. Following that logic, you might be compelled to ponder the most powerful tool the average, everyday 5-year old wields: coloring books. What better way than a coloring book to transform a droll slideshow presentation into a fun and educational journey?
That's what artists Máirín Duffy and Madeline Peck thought, anyway, and it has turned out to be accurate. In the past, Máirín has helped produce [five open source coloring books][2] to help explain advanced topics including SELinux, Containers, Ansible, and more. It's a fun and easy way to learn about emerging technology, and you can either color your lessons yourself or hand it over to a resident specialist (an actual 5-year old) for project completion.
The latest coloring book in the series is all about [event driven architecture (EDA)][3]. As with all the previous coloring books, this one's not only free to download, but it's also open source. You can download the sources and assemble it yourself, or learn from the files so you can build your own about topics important to you.
Event-driven architecture is no small topic, so I sat down with Máirín and Madeline to discover how and why they took on the challenge.
**Q**: Presumably, you don't spend your days developing KNative serverless applications and pipelines. How do you learn so much about such a complex topic?
**Máirín Duffy**: I wrote the script for the coloring book. I have a lot of experience with OS-level technology, and I have experience working in teams that deploy applications as a service, but I do not have as much experience working with running and managing Kubernetes directly. And the concept of "serverless" was one I only knew of in passing.
Our colleague Kamesh Sampath gave a presentation he called [Knative and the Three Dwarves][4].
That gave us the idea to relate our story to Snow White. In fact, we use material from Kamesh's talk to serve as the basic scope of the technologies and technical scenarios we wanted to talk about.
All of the coloring books use an analogy of some form to help readers new to the technology relate to it using concepts they are likely to understand already or be familiar with.
For the EDA coloring book, we used the familiar fairy tale of Snow White and the Seven Dwarves and the analogy of running a bakery to explain the concepts of what it means to be serverless, and what the specific Kubernetes serverless components [Tekton][5], Serve Knative, and Event Knative are, and what they do.
In preparing to write a script for the book, I watched Kamesh's presentation, wrote out the questions I had, and met with Kamesh. He is a very gifted teacher and was able to answer all of my questions and help me feel comfortable about the subject matter. I formed an informal technical review board for the book. We have access to a lot of amazingly smart technology experts through Fedora and Red Hat, and they were excited about having a book like this available, so we got quite a few volunteers.
I bounced ideas off of them. I spent a lot of time pestering Langdon White, and we narrowed down on the concept of Snow White running a bakery and the scenarios of demonstrating auto-scaling (scaling the production of different baked goodies up and down based on the holidays), self-healing based on events (ordering new eggs when the supply is low), shutting down an app that isn't being used and spinning it up on demand (the cupcake decorator scenario), rolling back issues in production (the poisoned apple detector.)
I wrote up an initial draft, and then the technical review board reviewed it and provided a ton of suggestions and tweaks. We did another round, and I finalized the script so that Madeline could start illustrating.
**Madeline Peck**: That's where I come in. I was lucky: I was presented with the finished version of the script, so the coloring book taught me what I needed to know. The great technical writers who helped give feedback on the script and visuals correlating were a great help with this admittedly complex topic.
**Máirín Duffy**: And as Madeline completed storyboards, and then the initial draft of the fully illustrated book, we had a couple more technical board reviews to make sure it still all made sense.
**Q**: That's a lot more work than I realized. So how long does it take to create a coloring book?
**Madeline Peck**: This one took a lot longer because it was the first coloring book I had worked on. Mo has been churning them out for some time now, and has a great grasp on all the open source programs like [Inkscape][6] and [Scribus][7] that we use, as well as the connections and knowledge for topics that can be expanded upon in a simple but informative manner. This book started when I was an intern, and it's taught me a lot about each step in the process, as well as all the ways open source matters for projects like these.
**Q**: What tools do you use when you draw?
**Madeline Peck**: When I draw digitally, I use variations of different ink pens. But on paper, traditionally I use a color erase red pencil for sketching, a Pigma Micron 01 pen for inking (because it's water proof), and occasionally I add color with watercolors from Mijello.
**Q**: I don't work with physical materials often, and I don't have a kid to do the coloring in for me, but I'm enjoying using this as a digital coloring book. I've imported pages into Krita and it's given me the opportunity to experiment with different brushes and color mixing techniques.
**Madeline Peck**: I think Krita is a great coloring application! There's a great variety of brushes and tools. I used Krita for all the primary sketching for the frames in the coloring book. If people don't know, when you import PNGs into programs like Krita, you can set the layer mode with the image to multiply instead of normal. Then you can add a layer below it, and it's just like coloring in below the lines without the white background.
**Q**: Is it harder to draw things without considering color and shading? Does it feel incomplete to you?
**Madeline Peck**: I don't think so! There's a lot of gorgeous art in the world where artists only rely on line work. The weight of the lines, the way they interact — it's just another technique. It doesn't feel incomplete because I know there's going to be lots of people who are going to share pages of the book colored in their own way, which is really exciting!
**Q:** Who's this really meant for? Can people actually learn about going serverless from a coloring book?
**Máirín Duffy**: Another good question. We started this whole "coloring books to explain technology" thing when Dan Walsh came into my cube at Red Hat Westford almost 10 years ago and asked if I could draw him some illustrations for his [SELinux dogfood analogy][8]. He had come up with this analogy having had to explain how SELinux concepts worked repeatedly. He also found it to be an effective analogy in many presentations.
That coloring book was super basic compared to the EDA coloring book, but the bones are the same — making complex technology concepts less intimidating and more approachable with simple analogies and narrative. We have gotten overwhelming feedback over a long period of time that these coloring books have been very helpful in teaching about the technology. I've had customers tell me that they've been able to use specific coloring books to help explain the technology to their managers, and that they are a really non-intimidating way to get a good initial understanding.
**Madeline Peck**: I agree. The coloring books are meant for a variety of readers, with a wide range of prior knowledge on the subject. They can be used for people who have friends and family who work on serverless applications, for those working on the actual teams, or people who work adjacent to those developers.
**Máirín Duffy**: They also make a great handout on a conference expo floor, at talks, and even virtually as PDFs. Even if EDA isn't your thing, you can pick it up and your kids can have fun coloring the characters. I really do hope people can read this book and better understand what serverless is and that it could spark an interest for them to look more in depth into serverless and EDA processes.
### Get your copy
I love that there are free and open source coloring books that appeal to both kids needing something fun to color in, and the older crowd looking for clear and simple explanations of complex tech topics.
A lot of creativity goes into making these coloring books, but as with most open source endeavours, it inspires yet more creativity once it's in the hands of users.
Grab your copy of the Event-driven Architecture coloring book today! Download the PDF directly [here][9].
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/event-driven-architecture-coloring-book
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/EDUCATION_crayons.png
[2]: https://github.com/FOSS-Coloring-Books
[3]: https://github.com/FOSS-Coloring-Books/eda
[4]: https://www.youtube.com/watch?v=w-BBOxu8tqs
[5]: https://opensource.com/article/21/11/cicd-pipeline-kubernetes-tekton
[6]: https://opensource.com/article/21/12/linux-draw-inkscape
[7]: https://opensource.com/article/21/12/desktop-publishing-scribus
[8]: https://opensource.com/business/13/11/selinux-policy-guide
[9]: https://raw.githubusercontent.com/FOSS-Coloring-Books/eda/master/EDA%20and%20the%20Three%20Dwarves%20web%20version.pdf

View File

@@ -0,0 +1,116 @@
[#]: subject: "How to Install Discord on Manjaro and Other Arch Linux Derivatives"
[#]: via: "https://itsfoss.com/install-discord-arch-manjaro/"
[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Install Discord on Manjaro and Other Arch Linux Derivatives
======
[Discord][1] is a cross-platform application that can be used for voice calling, video calling, text messaging, and sharing media and files.
It is extremely popular among gamers and streamers. Although, many open source projects have started using it for hosting their community discussion. You can find [official Discord servers][2] for such open source communities.
Discord can be accessed straight from your web browser. Installing the official desktop client gives you system notifications and focused communication rather than fumbling for the Discord tab among multiple opened tabs.
While Discord provides Deb files for Ubuntu, there is no such ready-to-use package for Arch Linux.
Fret not. In this tutorial, I will show you two methods to install Discord on [Arch Linux][3] and its derivatives.
* Installing Discord via [Pacman][4] (CLI method, valid for all Arch-based distributions)
* Installing Discord via [Pamac][5] (GUI method, valid for Manjaro and some other Arch-based distros that use Pamac tool)
### Method 1: Installing Discord via pacman command
First, update your system as it is a rolling release distribution and [do not support partial upgrades][6].
Enter the following [pacman command][7] in the terminal to [update your Arch Linux system][8].
```
sudo pacman -Syu
```
Now you can install Discord package via the following command.
```
sudo pacman -S discord
```
Once installed, just launch the application from the application menu and login to start using Discord.
![Discord client in Arch Linux][9]
**If you want to install the Nightly version of Discord** to test upcoming new features, use the following command. Do note that it may not be stable so think again if you want this version.
```
sudo pacman -S discord-canary
```
#### Removing Discord
If you want to remove Discord, use the command below to remove it along with its dependencies and configuration files:
```
sudo pacman -Rns discord
```
If you had opted for the Nightly version, remove it using:
```
sudo pacman -Rns discord-canary
```
Thats neat. Now for folks who dislike using the terminal, there is an alternative. I will discuss that in the next section.
### Method 2: Installing Discord via Pamac
If you are using Arch Linux derivatives like [Manjaro Linux][10], [Garuda Linux][11], etc you have a graphical software center called Pamac.
With this graphical tool, you can easily install new applications or remove existing ones without going into the terminal.
Launch Pamac (Add/Remove Software) from the application menu.
![pamac menu][12]
Click on Updates to update your system.
![pamac update][13]
Now click on Browse and search for discord using the search button on the top left. Then, select the package and click apply to install.
![Installing Discord from Pamac][14]
You can use Pamac to uninstall the package the same way you installed it.
I hope you find this quick tip on installing Discord on Arch-based Linux distros helpful. Let me know if you have any questions or suggestions.
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-discord-arch-manjaro/
作者:[Anuj Sharma][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/anuj/
[b]: https://github.com/lkxed
[1]: https://discord.com/
[2]: https://discord.com/open-source
[3]: https://archlinux.org/
[4]: https://archlinux.org/pacman/
[5]: https://gitlab.manjaro.org/applications/pamac
[6]: https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported
[7]: https://itsfoss.com/pacman-command/
[8]: https://itsfoss.com/update-arch-linux/
[9]: https://itsfoss.com/wp-content/uploads/2022/06/discord.png
[10]: https://manjaro.org/
[11]: https://garudalinux.org/
[12]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-menu.png
[13]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-update.png
[14]: https://itsfoss.com/wp-content/uploads/2022/06/pamac-discord.png

View File

@@ -0,0 +1,132 @@
[#]: subject: "How to Uninstall Deb Packages in Ubuntu"
[#]: via: "https://itsfoss.com/uninstall-deb-ubuntu/"
[#]: author: "Abhishek Prakash https://itsfoss.com/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Uninstall Deb Packages in Ubuntu
======
Installing applications from a deb file is quite simple. You double click on it and it opens in the Software Center application and you install it from there.
[Installing applications from a deb file][1] is quite simple. You double click on it and it opens in the Software Center application and you install it from there.
But what about uninstalling a .deb package in Ubuntu or Debian? How do you remove the package you installed some time back.
While there are several ifs and buts around it, the simplest and most reliable way of deleting a deb file is by using the apt remove command.
```
sudo apt remove program_name
```
As you can see, **you need to know the exact package name here**. This may not always be straightforward. For example, if you install Google Chrome on Ubuntu, the program is known as google-chrome-stable in the command line. Did you already know that? I guess not.
In this tutorial, Ill go into detail about finding the exact package name and then using it to remove the application. Ill also discuss using a graphical method for deleting .deb packages.
### Removing package installed via deb files from Ubuntu
Before I show you how to remove deb packages from the command line, lets just quickly look at it in the Software Center application.
#### Method 1: Check if the application can be removed from the software center
Ubuntu has the Software Center GUI application that allows to search for applications, install them and remove them.
The Software Center may not show the application installed when you search for it.
![Searching for installed applications may not show any results in Ubuntu Software Center][2]
However, you may still find it under the “Installed” section if you scroll down. The external applications are usually displayed without their logo.
![Some installed applications can be found in the installed tab of the Software Center][3]
If you find it, you can remove the application by clicking the trash icon or remove button.
![Removing applications from the Ubuntu software center][4]
**Bottom line: Check if the application can be removed from the software center.**
#### Method 2: Delete applications using apt command
I am presuming that you dont know the exact name of the application command. It is only natural that you may not know that Google Chrome is installed as google-chrome-stable and Edge is installed as microsoft-edge-stable.
The tab completion may help if you have the first few letters. Otherwise, you can [list the installed applications with apt command][5] and use grep to search for the application name:
```
apt list --installed | grep -i possible_package_name
```
For example, you can intelligently guess that the Google Chrome package should have chrome in its name. You may search it like this:
```
apt list --installed | grep -i chrome
```
You may get more than one result in some cases.
![check if google chrome installed in ubuntu][6]
If you are not sure what the packages do, you can always get their details with:
```
apt info exact_package_name
```
Once you have the exact package name, you can delete it using the apt remove command.
```
sudo apt remove exact_package_name
```
You can also use apt-get remove or dpkg uninstall commands.
![Removing applications installed via deb files using the apt command][7]
#### Method 3: Use Synaptic Package Manager to remove deb applications
Another method is to use the [Synaptic Package Manager][8]. Before GNOME created its graphical package manager in the form of the Software Center, Synaptic was the default GUI package manager in Ubuntu and many other distributions.
It is still the recommended tool on the [Xfce desktop environment][9].
Install it first:
```
sudo apt install synaptic
```
Open Synaptic and search for the package name. Look for the installed packages that are marked green. Right-click on them and click on mark for removal. Hit apply after that.
![Removing Deb packages using Synaptic package manager][10]
### Did it help you?
I am more than comfortable using the apt command to remove the packages installed from .deb files. But I can understand that not everyone is comfortable using the command line.
I find the Software Center lacking when it comes to the removal of applications installed from external deb files. It could do a better job here.
I hope you have a better understanding of removing deb packages now. Let me know if you have any questions.
--------------------------------------------------------------------------------
via: https://itsfoss.com/uninstall-deb-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/install-deb-files-ubuntu/
[2]: https://itsfoss.com/wp-content/uploads/2022/07/search-for-installed-applications-ubuntu-software-center.png
[3]: https://itsfoss.com/wp-content/uploads/2022/07/installed-applications-in-ubuntu-software-center-scaled.webp
[4]: https://itsfoss.com/wp-content/uploads/2022/07/removing-applications-from-ubuntu-software-center-scaled.webp
[5]: https://itsfoss.com/list-installed-packages-ubuntu/
[6]: https://itsfoss.com/wp-content/uploads/2022/07/check-if-google-chrome-installed-in-Ubuntu.png
[7]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-applications-ubuntu.png
[8]: https://itsfoss.com/synaptic-package-manager/
[9]: https://www.xfce.org/
[10]: https://itsfoss.com/wp-content/uploads/2022/07/removing-deb-files-using-synaptic-scaled.webp

View File

@@ -0,0 +1,189 @@
[#]: subject: "Top 10 Features of Linux Mint 21 “Vanessa”"
[#]: via: "https://www.debugpoint.com/linux-mint-21-features/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Top 10 Features of Linux Mint 21 “Vanessa”
======
We round up the top features of the upcoming Linux Mint 21 “Vanessa”. Find out whats in store for you.
![Linux Mint 21 Cinnamon Desktop][1]
Linux Mint 21 “Vanessa” is the 36th release of [Linux Mint][2], which carries a good list of features along with several usability improvements across the desktop. The features are scattered across the Cinnamon desktop, core changes, Xapps updates and more.
I have summarized all of them in this list of top features of Linux Mint 21.
### Top Features of Linux Mint 21 “Vanessa”
#### 1. Ubuntu 22.04 and associated updates
Perhaps the most crucial change is the base of Linux Mint 21, which is now based upon [Ubuntu 22.04 “Jammy Jellyfish”][3]. The last major release, i.e. Linux Mint 20 “Ulyana”, was based on Ubuntu 20.04 “Focal Fossa”, when released four years back. The state of the world in 2020 was utterly different, considering everything going on.
Hence, a lot of packages, version upgrades, and new performance improvements all these under-the-hood updates come to Linux Mint 21. That includes the latest LTS [Linux Kernel 5.15][4], which brings further hardware lineup support, and toolchain updates for programming, development and networking.
#### 2. Major changes in the Timeshift backup tool
A few months back, the Mint team [announced][5] that they are taking over the development of the popular backup tool Timeshift and continuing its development as a “XApps”. So, this is a significant change. Why, may you ask?
Well, the developer of the Timeshift tool, Tony George, is busy with other projects. You may have heard about “[TeeJeeTech][6]” apps for Linux. It was created by Tony and had some cool apps. However, he doesnt have the time to concentrate on Timeshift development and enhancement.
![Timeshift creating snapshot][7]
With that said, since Linux Mint now maintains it, some new features land in this release, such as Timeshift now determining how much disk space you need for the next backup in rsync mode (not in btrfs mode). In addition, it stops the backup process if it seems the disk space is less than 1 GB after the backup.
#### 3. WebP Support
WebP image is a reasonably new image format created by Google for the web. It beings better compression and reduced size while maintaining good quality than traditional JPEG or PNG images.
WebP support (view images, thumbnail or edit) in Linux Desktop requires some [additional installation][8] of packages. Looking at the popularity Linux Mint team brings out-of-the-box WebP support across the desktop apps and flavours.
That means Nemo file manager can show thumbnails of WebP images and view them in xviewer. The mint team always think about the end-user first because other distros are still behind on supporting WebP by default, such as Ubuntu, etc. Not only that, the new app [xapp-thumbnailers][9] now helps Nemo file manager to preview additional file types as well:
* ePub
* MP3 with Album Arts
* RAW Images
* AppImage
#### 4. Process Monitor
A small but handy tool called process monitor will give you a heads-up on whats happening in your system. This little icon at the system tray shows up when your system is undergoing automatic updates or backup by TImeshift. In those situations, your system may become slow, and this nifty icon can show you why.
#### 5. Improved printing support
Linux Mint is well equipped for devices, and the printer supports it by default. This edition of Mint brings [Internet Printing Protocol (IPP)][10] for driverless printing and scanning.
In addition, HPs driver, HPLIPs latest edition (3.21.12), is also installed by default.
All these changes streamline printer and scanner usage. And users like you can enjoy effortless printing and scanning. It is such an essential aspect of a Linux distro, but it doesnt work all the time. While [reviewing many distros][11], I found many fails to detect the printers or even print.
Its good to see that the mint team contributed to this critical functionality.
#### 6. Window Animation updates
There are some considerable changes come in the Window and desktop animation effects. Firstly, the Effects settings for Windows and desktop are merged now. Earlier, there were separate sections which gave more granular control of the animations.
Heres a side-by-side view.
![][12]
![][13]
Secondly, the mapping windows and desktop effects options are removed.
Third, a new control arrives to change the overall animation speed from slower to faster.
Finally, a global switch to disable or enable all the animation on the entire desktop gives you the option for more control.
I believe this is a well-designed dialog and advanced options for better clarity.
#### 7. Mutter rebase
Lets talk about [Cinnamon desktop version 5.4][14], which comes with Linux Mint 21. Its the latest Cinnamon release, and Mint is the first distro to bring it to the user (other than traditional Arch Linux folks, who got it [a little early][15]).
Finally, the team completed the rebase of Mutter into its window manager, Muffin in Cinnamon 5.4. Since Muffin was initially forked from Mutter, it was always lagging behind the upstream Mutter features, despite the backporting of changes. A significant amount of effort went to feature inclusion, bug fixes & clean up to make Muffin as close to the Mutter code base.
Hence, in the future, it is now easier to port back changes from Mutter upstream and clean things in Muffin as needed.
#### 8. Window manager and GTK Themes
With the changes in Muffin, the team also moved some of the display settings from gnome-control-center to cinnamon-control-center. In addition, the display configs from csd-xrandr moved into the Muffin window manager in Cinnamon 5.4. Apparently, you may not see any difference in the Display settings window. However, you may see some performance boost and fewer bugs or issues while scaling displays or in high-res windows.
Another critical change that the Mint team introduced via CInnamon 5.4 is the uniform render of GTK dialogs in apps. Earlier, if a GTK app used a header bar, then the dialog was a mix of CSD (client side decoration) and GTK themes.
Now with Cinnamon 5.4, all the windows are rendered using the GTK theme irrespective of their design. And with that, the legacy Metacity themes also dropped.
On a side note, I loved the Metacity, and its “legacy look” when [they were a thing][16] in the early days of GNOME.
#### 9. Package Management updates
Following the trends of Debian, KDE Plasma desktop, Linux Mint also protects your system from uninstalling critical dependent packages.
When you try to uninstall, Mint now checks the dependencies and whether critical desktop packages will be removed.
If found, you get an error message that stops you from going further.
On the other hand, when you successfully uninstall a package, it cleans up all the dependencies with it installed.
#### 10. Disable the Systemd OOMD (out-of-memory daemon) service
The “systemd-oomd” had some bad feedback recently since the Ubuntu 22.04 LTS release. Users across the web [reported][17] the sudden closing of applications (such as Firefox) without any warning or user intervention. Further investigation pointed to the “not so well” implementation of the systemd-oomd service.
In theory, the [systemd-oomd.service][18] monitors your system for out-of-memory situations, and it has the authority to kill any processes which consume more system resources. Ubuntu team did not communicate this with importance, which eventually led to an unpleasant user experience.
With that knowledge, Linux Mint 21 decides [not to feature][19] this service and disables it. Because the user base of Linux Mint is general users, students, etc., it would be a bad experience for users if apps closed unexpectedly.
![Systemd OOMD service is not enabled][20]
#### 11. Other Changes
Finally, lets round up some tiny yet impactful changes to wrap up the Linux Mint 21 features.
* The default document reader app Xreader is now capable of minor annotation. This is a handy feature.
* The WebApp manager now brings custom browser parameters.
* Warpinator file transfer utility now shows you other sources on Windows, Android and iOS devices.
* Mint packages Firefox web browser as deb and not the Snap version, which defaults in Ubuntu 22.04 LTS. Thanks to Mint team, users need not worry about the [complex set of commands][21] to remove the Firefox Snap from Jammy.
![Firefox 102 in Linux Mint 21 Exclusively packaged as deb executable][22]
* The bulk renamer app Thingy gets some UI improvements.
* The os-prober of GRUB2 is now available to detect all the operating systems in your hardware (handy for dual boot or more systems).
* The Bluetooth manager Blueman replaces Blueberry, bringing additional features for connecting and managing your Bluetooth devices.
* Finally, new wallpapers for your new desktop arrive in this release.
![New Wallpapers in Linux Mint 21][23]
### Things that are NOT changing
From a very high level, you might feel that most of the Linux Mint 21 remains the same as its predecessors. The default desktop looks and default wallpaper remains the same. Xfce and MATE desktop didnt have any major releases. Hence they are precisely the same. In addition, the default icon theme, application menu, etc., may give you a similar feel to the entire desktop.
### Wrapping Up
Overall, a good set of features is beneficial for end users rather than being fancy gestures and stuff. For this very fact, Linux Mint is the best Linux distro today for beginners or end users. So, that concludes the feature highlights of Linux Mint 21.
The BETA testing is in progress, and there are a [few bugs reported][24]. The final release is due soon, within a few weeks from now.
You can download/update to Linux Mint 21 when released. Also, stay tuned for our detailed distro review of Linux Mint 21 after the official release.
What do you think about the new features of Linux mint 21? Is there any feature you expected but didnt arrive in this release? Lets discuss this in the comment box below.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/linux-mint-21-features/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/07/Linux-Mint-21-Cinnamon-Desktop.jpg
[2]: https://www.debugpoint.com/linux-mint/
[3]: https://www.debugpoint.com/web-stories/ubuntu-22-04-review/
[4]: https://www.debugpoint.com/linux-kernel-5-15/
[5]: https://blog.linuxmint.com/?p=4323
[6]: https://teejeetech.com/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Timeshift-creating-snapshot.jpg
[8]: https://www.debugpoint.com/view-webp-ubuntu-linux/
[9]: https://github.com/linuxmint/xapp-thumbnailers
[10]: https://datatracker.ietf.org/doc/html/rfc8011
[11]: https://www.debugpoint.com/tag/linux-distro-review/
[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-20.jpg
[13]: https://www.debugpoint.com/wp-content/uploads/2022/07/Effects-in-Linux-Mint-21.jpg
[14]: https://github.com/linuxmint/cinnamon-desktop/releases/tag/5.4.0
[15]: https://www.debugpoint.com/cinnamon-arch-linux-install/
[16]: https://www.debugpoint.com/gnome-classic-ubuntu-22-04/
[17]: https://askubuntu.com/questions/1404888/how-do-i-disable-the-systemd-oom-process-killer-in-ubuntu-22-04
[18]: https://www.freedesktop.org/software/systemd/man/systemd-oomd.service.html
[19]: https://debugpointnews.com/linux-mint-21-systemd-oom/
[20]: https://www.debugpoint.com/wp-content/uploads/2022/07/Systemd-OOMD-service-is-not-enabled.jpg
[21]: https://www.debugpoint.com/remove-firefox-snap-ubuntu/
[22]: https://www.debugpoint.com/wp-content/uploads/2022/07/Firefox-102-in-Linux-Mint-21-Exclusively-packaged-as-deb-executable.jpg
[23]: https://www.debugpoint.com/wp-content/uploads/2022/07/New-Wallpapers-in-Linux-Mint-21.jpg
[24]: https://github.com/linuxmint/mint21-beta/issues

View File

@@ -0,0 +1,221 @@
[#]: subject: "Turn your Python script into a command-line application"
[#]: via: "https://opensource.com/article/22/7/bootstrap-python-command-line-application"
[#]: author: "Mark Meyer https://opensource.com/users/ofosos"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Turn your Python script into a command-line application
======
With scaffold and click in Python, you can level up even a simple utility into a full-fledged command-line interface tool.
![Python programming language logo and Tux the Penguin logo for Linux][1]
Image by: Opensource.com
I've written, used, and seen a lot of loose scripts in my career. They start with someone that needs to semi-automate some task. After a while, they grow. They can change hands many times in their lifetime. I've often wished for a more command-line *tool-like* feeling in those scripts. But how hard is it really to bump the quality level from a one-off script to a proper tool? It turns out it's not that hard in Python.
### Scaffolding
In this article, I start with a little Python snippet. I'll drop it into a `scaffold` module, and extend it with `click` to accept command-line arguments.
```
#!/usr/bin/python
from glob import glob
from os.path import join, basename
from shutil import move
from datetime import datetime
from os import link, unlink
LATEST = 'latest.txt'
ARCHIVE = '/Users/mark/archive'
INCOMING = '/Users/mark/incoming'
TPATTERN = '%Y-%m-%d'
def transmogrify_filename(fname):
    bname = basename(fname)
    ts = datetime.now().strftime(TPATTERN)
    return '-'.join([ts, bname])
def set_current_latest(file):
    latest = join(ARCHIVE, LATEST)
    try:
        unlink(latest)
    except:
        pass
    link(file, latest)
def rotate_file(source):
    target = join(ARCHIVE, transmogrify_filename(source))
    move(source, target)
    set_current_latest(target)
def rotoscope():
    file_no = 0
    folder = join(INCOMING, '*.txt')
    print(f'Looking in {INCOMING}')
    for file in glob(folder):
        rotate_file(file)
        print(f'Rotated: {file}')
        file_no = file_no + 1
    print(f'Total files rotated: {file_no}')
if __name__ == '__main__':
    print('This is rotoscope 0.4.1. Bleep, bloop.')
    rotoscope()
```
All non-inline code samples in this article refer to a specific version of the code you can find at [https://codeberg.org/ofosos/rotoscope][2]. Every commit in that repo describes some meaningful step in the course of this how-to article.
This snippet does a few things:
* Check whether there are any text files in the path specified in `INCOMING`
* If it exists, it creates a new filename with the current timestamp and moves the file to `ARCHIVE`
* Delete the current `ARCHIVE/latest.txt` link and create a new one pointing to the file just added
As an example, this is pretty small, but it gives you an idea of the process.
### Create an application with pyscaffold
First, you need to install the `scaffold`, `click`, and [tox Python modules][3].
```
$ python3 -m pip install scaffold click tox
```
After installing `scaffold`, change to the directory where the example `rotoscope` project resides, and then execute the following command:
```
$ putup rotoscope -p rotoscope \
--force --no-skeleton -n rotoscope \
-d 'Move some files around.' -l GLWT \
-u http://codeberg.org/ofosos/rotoscope \
--save-config --pre-commit --markdown
```
Pyscaffold overwrote my `README.md`, so restore it from Git:
```
$ git checkout README.md
```
Pyscaffold set up a complete sample project in the docs hierarchy, which I won't cover here but feel free to explore it later. Besides that, Pyscaffold can also provide you with continuous integration (CI) templates in your project.
* packaging: Your project is now PyPi enabled, so you can upload it to a repo and install it from there.
* documentation: Your project now has a complete docs folder hierarchy, based on Sphinx and including a readthedocs.org builder.
* testing: Your project can now be used with the tox test runner, and the tests folder contains all necessary boilerplate to run pytest-based tests.
* dependency management: Both the packaging and test infrastructure need a way to manage dependencies. The `setup.cfg` file solves this and includes dependencies.
* pre-commit hook: This includes the Python source formatter "black" and the "flake8" Python style checker.
Take a look into the tests folder and run the `tox` command in the project directory. It immediately outputs an error. The packaging infrastructure cannot find your package.
Now create a Git tag (for instance, `v0.2` ) that the tool recognizes as an installable version. Before committing the changes, take a pass through the auto-generated `setup.cfg` and edit it to suit your use case. For this example, you might adapt the `LICENSE` and project descriptions. Add those changes to Git's staging area, I have to commit them with the pre-commit hook disabled. Otherwise, I'd run into an error because flake8, Python style checker, complains about lousy style.
```
$ PRE_COMMIT_ALLOW_NO_CONFIG=1 git commit
```
It would also be nice to have an entry point into this script that users can call from the command line. Right now, you can only run it by finding the `.py` file and executing it manually. Fortunately, Python's packaging infrastructure has a nice "canned" way to make this an easy configuration change. Add the following to the `options.entry_points` section of your `setup.cfg` :
```
console_scripts =
    roto = rotoscope.rotoscope:rotoscope
```
This change creates a shell command called `roto`, which you can use to call the rotoscope script. Once you install rotoscope with `pip`, you can use the `roto` command.
That's that. You have all the packaging, testing, and documentation setup for free from Pyscaffold. You also got a pre-commit hook to keep you (mostly) honest.
### CLI tooling
Right now, there are values hardcoded into the script that would be more convenient as command [arguments][4]. The `INCOMING` constant, for instance, would be better as a command-line parameter.
First, import the [click][5] library. Annotate the `rotoscope()` method with the command annotation provided by Click, and add an argument that Click passes to the `rotoscope` function. Click provides a set of validators, so add a path validator to the argument. Click also conveniently uses the function's here-string as part of the command-line documentation. So you end up with the following method signature:
```
@click.command()
@click.argument('incoming', type=click.Path(exists=True))
def rotoscope(incoming):
    """
    Rotoscope 0.4 - Bleep, blooop.
    Simple sample that move files.
    """
```
The main section calls `rotoscope()`, which is now a Click command. It doesn't need to pass any parameters.
Options can get filled in automatically by [environment variables][6], too. For instance, change the `ARCHIVE` constant to an option:
```
@click.option('archive', '--archive', default='/Users/mark/archive', envvar='ROTO_ARCHIVE', type=click.Path())
```
The same path validator applies again. This time, let Click fill in the environment variable, defaulting to the old constant's value if nothing's provided by the environment.
Click can do many more things. It has colored console output, prompts, and subcommands that allow you to build complex CLI tools. Browsing through the Click documentation reveals more of its power.
Now add some tests to the mix.
### Testing
Click has some advice on [running end-to-end tests][7] using the CLI runner. You can use this to implement a complete test (in the [sample project][8], the tests are in the `tests` folder.)
The test sits in a method of a testing class. Most of the conventions follow what I'd use in any other Python project very closely, but there are a few specifics because rotoscope uses `click`. In the `test` method, I create a `CliRunner`. The test uses this to run the command in an isolated file system. Then the test creates `incoming` and `archive` directories and a dummy `incoming/test.txt` file within the isolated file system. Then it invokes the CliRunner just like you'd invoke a command-line application. After the run completes, the test examines the isolated filesystem and verifies that `incoming` is empty, and that `archive` contains two files (the latest link and the archived file.)
```
from os import listdir, mkdir
from click.testing import CliRunner
from rotoscope.rotoscope import rotoscope
class TestRotoscope:
    def test_roto_good(self, tmp_path):
        runner = CliRunner()
        with runner.isolated_filesystem(temp_dir=tmp_path) as td:
            mkdir("incoming")
            mkdir("archive")
            with open("incoming/test.txt", "w") as f:
                f.write("hello")
            result = runner.invoke(rotoscope, ["incoming", "--archive", "archive"])
            assert result.exit_code == 0
            print(td)
            incoming_f = listdir("incoming")
            archive_f = listdir("archive")
            assert len(incoming_f) == 0
            assert len(archive_f) == 2
```
To execute these tests on my console, run `tox` in the project's root directory.
During implementing the tests, I found a bug in my code. When I did the Click conversion, rotoscope just unlinked the latest file, whether it was present or not. The tests started with a fresh file system (not my home folder) and promptly failed. I can prevent this kind of bug by running in a nicely isolated and automated test environment. That'll avoid a lot of "it works on my machine" problems.
### Scaffolding and modules
This completes our tour of advanced things you can do with `scaffold` and `click`. There are many possibilities to level up a casual Python script, and make even your simple utilities into full-fledged CLI tools.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/bootstrap-python-command-line-application
作者:[Mark Meyer][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ofosos
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/python_linux_tux_penguin_programming.png
[2]: https://codeberg.org/ofosos/rotoscope
[3]: https://opensource.com/article/19/5/python-tox
[4]: https://opensource.com/article/21/8/linux-terminal#argument
[5]: https://click.palletsprojects.com
[6]: https://opensource.com/article/19/8/what-are-environment-variables
[7]: https://click.palletsprojects.com/en/8.1.x/testing
[8]: https://codeberg.org/ofosos/rotoscope/commit/dfa60c1bfcb1ac720ad168e5e98f02bac1fde17d

View File

@@ -1,80 +0,0 @@
[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman"
[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
采访自由软件基金会执行董事 Zoë Kooyman
======
了解自由软件基金会FSF的一切。
![Dandelion zoomed in][1]
图片署名:由 Rob Tiller 拍摄,以 CC BY-SA 发布
早在 1985 年,[自由软件基金会FSF][2]就开始提倡源代码共享的理念并从此打响了为计算机用户和开发者捍卫权利的斗争。FSF 认为,用“开源”和“闭源”这两个词来划分软件,十分具有局限性;于是,在为程序分类时,转而使用了以下词语:*尊重自由*(“自由”)或*践踏自由*“非自由”或“专有”。不管用语如何关键之处在于计算机必须受用户控制而不是任由开发了计算机软件的公司来摆布。正因如此GNU 工程、Linux 内核、Freedesktop.org 等众多自由软件项目,才会如此重要。
最近FSF 新上任了一位执行董事,她叫 Zoë Kooyman。我初见 Zoë 时,是在 2019 年的一个 [All Things Open][3] 大会上。当然,那个时候她还不是 FSF 的执行董事,不过已经在管理 FSF 的重大活动列表了——那份列表的活动包括了 [LibrePlant][4], 并且还在不断地增长。她之前递给我了一份自由软件作者的名单,名单长得一眼望不尽,而且那些软件都是我*每天*在用的。由此,我也很受她那充沛的精力和诚恳的态度所打动。我只是偶然参加了一次 FSF 的聚会,但最后却和那些人成了朋友。是他们让我的数字生活有了意义,是他们保障了我能够拥有 Zoë 和 FSF 所说的[四项基本自由][5]
* 无论用户出于何种目的,用户必须可以按照自己的意愿,自由地运行该软件(自由之零)。
* 用户可以自由地学习并修改该软件,这样程序的计算过程才是可控的(自由之一)。作为前提,用户必须可以得到该软件的源代码。
* 用户可以自由地分发该软件的副本,这样就可以帮助别人(自由之二)。
* 用户可以自由地分发该软件修改后的副本(自由之三)。借此,用户可以把改进后的软件分享给整个社区,令他人也从中受益。作为前提,用户必须可以得到该软件的源代码。
听说了 Zoë 受任为执行董事后,我给她发了一封邮件,提出想和她进行一次采访。她十分热心,在百忙之中抽出了一点时间来和我畅谈。
**Seth Kenlon你当上 FSF 的执行董事了!你是怎么走到今天的呢?**
**Zoë Kooyman** 在我的工作生涯中,我最开始是一位活动组织者。我环游世界,举办着一些世界上最大的音乐节目。在不断变更的地点、各具特色的文化中工作,是十分有趣的,因为不管是演出、技艺还是别的现场元素,所有各异的制作元素都结合在一起了。让一切事物都在恰当时候安排到位,就像是耍杂技一样。很多时候,我都是在不同的国家生活和工作。多亏了我的工作,我才能学到这么多的组织和交流技巧。我也对不同形式的媒体有过研究和工作,了解它们的经历,以及它们与社会的关系。
大学时期,我第一次了解到了 copyleft译注一种分享软件的思想和方法简而言之其目的是保障一款软件对其每一位接收者来说都是自由的它是关于我们如何才能使用现有的结构来造福自己并推动变革的。也正是在那时媒体以及互联网和软件的格局开始迅速变化而这种变化却是以自由为代价的。搬到美国后我变了许多。在美国我对社会责任问题有了更加强烈的紧迫感因此我决定为此付诸行动。我很感激 John Sullivan当时 FSF 的执行董事),他根据我对自由软件的了解以及我在活动组织方面的经验, 把我招了进来,由此我也得以把这两方面的能力结合到一起。
**Seth你是如何了解到自由软件的**
**Zoë** 我们常常会觉得,自由软件主要影响的是懂技术的人。但是,自由软件运动的目的是捍卫每一位计算机用户的自由。其实,软件自由影响着边缘化社区(译注:因条件受限或受到排斥等,落后于主流社会的发展,而被置于社会边缘的群体)的成员,他们很少有机会使用计算机。而软件也塑造了他们的生活。
GNU 工程和 copyleft 的概念,取得的成就是十分卓越的。去真正观察社会发展的方向,然后说:“不一定非得那样才行,我们可以把事情掌握在自己手中。”这在早期改变了我的人生观。我开始有了一种想法,把现有的材料用起来,再把它重新引入不同的亚文化之中。在娱乐行业,这已是家常便饭。从他人的作品中得到灵感,并基于此创造新的作品,其结果就是对我们所处时代的反映,同时也是对历史的致敬。没有这般自由,也不会有真正的进步。
谈谈我对电影版权的看法吧。我曾经与荷兰电影研究所合作,做了一个由许多“孤立的电影片段”组合而成的混剪。然后,在一次有几千名年轻人参加的大型舞蹈活动中,那个混剪就在一个 170 米的全景屏幕上播放了,而且还有现场 DJ 在配合演奏。他们之后也经常在别的活动中播放它,比如说荷兰的 *Museumnacht*
我并不懂技术,于是我通过文化来表达了这些观点。但这些年来,我接触自由软件的思想,接触得越来越频繁了。我于是意识到,随着软件不断融入我们的生活(有时还是身体),自由软件斗争的重要性正日益凸显。在当今的世界,专有软件处于称霸地位,我们社会的发展呈现出以利益驱动、为少数人着想的趋势,而这种趋势是以多数人的自由为代价的。如果没有自由软件,生活中的许多方面、社会的许多重要事业,就不可能真正取得成功。
**Seth** 你是什么时候加入 FSF 的?
**Zoë** 在 2019 年初LibrePlanet 最后一期现场版的前一周译注LibrePlant 之后因为疫情而改成了线上活动)。
**Seth** 是什么吸引了你去担任执行董事这一职位?
**Zoë** 有许多组织都致力于让社会更加公平、更加协作、更加理解软件。FSF 只是其中之一,但它长期以来一直是这场运动的核心。社会正在迅速变化,而许多人却还没准备好如何应对当今社会的数字产物,例如软件。这是一项十分重要的工作,但是去担任这项工作的人还是太少了。能有一个组织来应对未来的各种挑战,这是十分重要的。
执行董事这一职位,在某种程度上,不过是辅助了工作人员和社区而已,好让他们为自由软件作出关键的改变。我相信,我们继续传播自由软件的思想,是非常重要的;并且,有了 FSF 的团队协助,我也相信,我能利用好工作在不同文化和人群中的经验,以及组织高挑战性的全球项目的经验,来使我们发挥出最大的潜能。我的这项决定,得到了来自工作人员、管理层和社区的支持,由此我相信,这个决定是正确的。
**Seth** 你认为当今的软件自由面临的最大的挑战是什么FSF 在应对这些挑战的时候,应该承担怎样的使命?
**Zoë** 随着软件越来越多地融入了社会的基本结构,软件也更加无形了。如今,软件存在如此广泛,我们却习惯性地忽视它。我们只关注着程序的功能,却无视了实现这种功能的手段,更别说它尊不尊重你作为一位用户的自由了。而与此同时,软件的发展速度又比以往任何时候都要快。如果人们无法理解程序是如何构成的,而只是整天地用着这些程序,那我们该怎么向他们解释,他们正遭受着不公呢?
FSF 的职责就是,让每个人重新谈起用户自由,并提醒人们,我们所使用的工具并没有那么好。因此,教育行业和政府的认可是十分重要的。如果我们让人们关注软件自由在这些领域的问题,那我们必将取得成效。通过教育,我们可以确保后代也有选择自由的权利;而政府采用自由软件,可以保护公民免遭专有软件的不正影响(维护数字主权)。
我们可以告诉人们,当今社会给我们灌输了错误的观点:你的自由受到侵犯是正常的,毕竟事情“太复杂,你理解不了”。如果你想要图个便利,想要相互联系,或者就是想要满足你的需求,那你就得相信这些组织,按照他们的意愿来。这是不对的。我们整个社区都相信,我们能构建一个无需抛弃自由也能处在其中的社会。并且我们也有这样的法律框架来支持我们的观点。每天,不同背景、不同能力的人都加入我们的对话,越来越多的人关心自己的自由,并且每个人都是出于真心的。我们每天都在学习如何去保护自己以及他人,并且我也希望,未来能够更加自由。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[Peaksol](https://github.com/TravinDreek)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg
[2]: https://www.fsf.org/
[3]: https://www.allthingsopen.org/
[4]: https://libreplanet.org
[5]: https://www.gnu.org/philosophy/free-sw.en.html

View File

@@ -33,52 +33,51 @@ CC BY-SA Seth Kenlon
世界各地都有公共实例,所以下载 Mumble 客户端后,你可以加入其中任何一个开放的实例,并使用它来在线运行游戏。有一个按键通话设置,你可以用此来消除背景噪音,当你的其他家庭成员在进行其它工作而不想被你的桌面会话打扰时,这个功能将会非常实用。
还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于无关的聊天,尝试保持口语游戏的主题。
还有一个文本聊天客户端。我的游戏组通常使用它来发布与游戏相关的链接,但你也可以将其用于离题的交谈,试图让口头游戏保持主题。
If your players prefer facial cues or are just used to video chat web apps, then [Jitsi][8] is an excellent substitute for in-person gatherings around a table. Jitsi is mostly like every other video chat application you've ever used, except possibly even easier. You can set up a room, invite friends, keep out strangers, and play for hours. Muting and going off-camera are intuitive, the interface is attractive, and new features are being developed and introduced regularly.
如果你的玩家更喜欢面部表情,或者只是习惯于视频聊天网页应用。那么 [Jitsi][8] 是面对面围坐在桌子旁聚会的绝佳替代品。Jitsi 和你曾经使用过的其它视频聊天软件几乎一样,甚至更简单。你可以设置一个房间,邀请朋友,将陌生人拒之门外,并玩上几个小时。静音和离机很直观,界面很吸引人,并且定期开发和推出新功能。
![Jitsi][9]
CC BY-SA Seth Kenlon
Both Mumble and Jitsi have clients for both desktop and mobiles, so anyone can play no matter what device they're on.
Mumble Jitsi 都有适用于台式机和移动设备的客户端,因此任何人都可以在任何设备上使用。
### Character sheets
### 字符表
I've already posted about my [digital character sheet][10] solutions, but any RPG player knows that there's more to managing a character than just stats.
我已经发布了我的[数字角色表][10]解决方案,但任何 RPG 玩家都知道管理角色不仅仅是统计数据。
During a game online that spanned several sessions, I found there was a lot of downtime between games. It occurred to me that, while I found it unreasonable to demand that my players calculate encumbrance during a live pen-and-paper game, it's pretty easy to request them to track encumbrance when everything's digital.
在跨越多个会话的在线游戏中,我发现游戏之间有很多的停机时间。我突然想到,虽然我发现要求我的玩家在现场纸笔游戏中计算负担是不合理的,但当一切都是数字化时,要求他们跟踪负担很容易。
There are plenty of spreadsheets available online, but the open source option is [Ethercalc][11]. With instances all over the world, it's easy to find a free Ethercalc host. Alternately, you can use Podman or Docker to easily install and run your own instance.
网上有很多可用的电子表格,但开源选项是 [Ethercalc][11]。由于实例遍布世界各地,因此很容易找到免费的 Ethercalc 主机。或者,你可以使用 Podman 或者 Docker 轻松安装和运行你自己的实例。
![Ethercalc spreadsheet of inventory][12]
Seth Kenlon, CC-BY-SA 4.0
Ethercalc provides the essentials: a shared ledger so players can track the items their party is carrying (and who's holding one at any given time), the weight of each item, and the value. Items get entered as the party collects loot during the game, so they know when they're too burdened to pick up something new.
Etherclac 提供了一些基本要素:一个共享的账本,这样玩家就可以跟踪他们的团队所携带的物品(以及在任何给定的时间持有物品的人)、每件物品的重量和价值。当队伍在游戏过程中收集战利品时,物品就会进入,所以他们知道什么自己何时会因为负担过重而无法获得新内容。
Between sessions, the shared spreadsheet can be referenced and organized so that the PCs know what to sell or stuff into a bag of holding or what they can safely drop when better loot presents itself next session.
在会话之间,可以引用和组织共享的电子表格,以便 PC 知道要出售什么或将什么东西放入一个袋子中,或者当更好的战利品出现在下一个会话时,他们可以安全地丢弃什么。
### Maps
### 地图
Mythic Table is an open source shared mapping system for tabletop games. That means you can load an image to serve as the map of your game and move digital tokens on the map to represent where players' characters are located.
Mythic Table 是一款开源的桌面游戏共享地图系统。这意味着你可以加载图片作为游戏地图,并在地图上移动数字标记以表示玩家角色所在的位置。
Since [last I wrote about Mythic Table][13], it's run a successful Kickstarter campaign to ensure its continued development. It's also gained several new features, most notably a "fog of war" feature that allows the dungeon master to blank out the map and reveal only the parts that players have explored.
自从[上次我写了关于 Mythic Table][13]以来,它已经成功地在 Kickstarter 上进行了一次活动,以确保它的持续发展。它还获得了一些新功能,其中最引人注目的是“战争迷雾”功能,它允许地下城主将地图留白并仅显示玩家探索过的部分。
![A dungeon map rendered by Mythic Table and user interface choices for chat, maps, and characters][14]
Seth Kenlon, CC-BY-SA 4.0
I've been running two games on Mythic Table for the past few months, and it's been an excellent and straightforward map system. Conveniently, it also features a digital dice roller, so if your players lack dice or you prefer to roll dice in the open, you have a shared dice pool.
在过去的几个月里,我一直在 Mythic Table 上运行两款游戏,这是一款优秀且直观的地图系统。它还提供了一个数字掷骰子器,所以如果你的玩家没有骰子,或者你更喜欢在公开场合掷骰子,你就有了一个共享的骰子池。
You can try Mythic Table at [mythictable.com][15] or visit their code repository on [Github][16].
你可以在 [mythictable.com][15] 上试用 Mythic Table或者访问他们在 [Github][16] 上的代码库。
### Open gaming on open source
### 在开源上开放游戏
The open source tools I use are universal, so they work with whatever game system you decide to play. Because they're all open source, they can be used online by all your players regardless of what OS they use, and they can all be self-hosted.
我使用的开源工具是通用的,因为它们适用于你决定玩的任何游戏系统。因为它们都是开源的,所以无论你的玩家使用什么操作系统,他们都可以在线使用,并且它们都可以自托管。
If you're a programmer as well as a gamer, visit their Git repositories and see if there's anything you can contribute. If you're a gamer or a gamemaster, try the tools out the next time you sit down at a digital game table. You might be surprised at just how few online accounts you actually need to have to use some of the best applications available for gaming.
如果你既是程序员又是游戏玩家,请访问他们的 Git 代码仓库,看看是否有任何你可以贡献的东西。如果你是游戏玩家或者游戏大师,请在下次坐在数字游戏桌前尝试使用这些工具。你可能会惊讶于你只需要很少的在线账户就可以使用一些可用于游戏的最佳应用程序。
--------------------------------------------------------------------------------
@@ -86,7 +85,7 @@ via: https://opensource.com/article/21/10/open-source-rpgs
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
译者:[译者ID](https://github.com/perfiffer)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出