+
This is some sample content for my new WYSIWYG editor.
+
+
+
+
+```
+
+Open it in your browser to test the WYSIWYG editor:
+
+![CKEditor 5 running in the browser.][4]
+
+### Advanced WYSIWYG editing
+
+Yes, there are only three steps, and it's running. But this simple example also uncovers some typical challenges faced by an integrator of an external framework.
+
+- It's just a simple HTML website that misses the entire context of your app.
+- The UI doesn't match your design system.
+- Your app is written in React/Angular/Vue, or something else.
+- You don't want to serve CDN scripts, and prefer to self-host.
+- The feature set of the editor isn't what you need.
+- Also, some of your users prefer Markdown to HTML or WYSIWYG "magic".
+
+So how do you resolve some of these issues? Most editor components allow for some degree of customization that's still cheaper than writing a custom script to properly handle user content creation.
+
+CKEditor 5 uses a plugin-based architecture, which provides excellent customizability and extensibility. By putting in some effort, you can benefit from a stable, popular, and reliable solution set up to look and work exactly as you want. Drupal 10, for example, built CKEditor 5 into its core and enriched it with some typical CMS functionality like a media library through custom plugins.
+
+What are some ways you can take advantage of all these customization options? Here are five that showcase its versatility:
+
+### 1. Flexible UI options
+
+The first thing to notice when looking at a component to integrate with your application is its user interface. The CKEditor 5 framework delivers a [few different UI types][5]. For example:
+
+- Classic Editor, used in the first example, offers a toolbar with an editing area placed in a specific position on the page. The toolbar stays visible when you scroll down the page, and the editor automatically grows with the content.
+- The Document editor provides a similar editing experience to applications such as Microsoft Word or Google Docs, with a UI that resembles a paper document.
+- If you're looking for distraction-free editing, where the content is placed in its target location on the web page without the editor UI getting in your way, you have a few options. The Inline Editor, Balloon Editor, and Balloon Block Editor all come with different types of floating toolbars that appear as needed.
+
+Besides that, you can play with the toolbar to move the buttons around, group them into drop-downs, use a multi-line toolbar, or hide some less-frequently needed buttons in the "three dots" or "more options" menu. Or, if you wish, move the entire toolbar to the bottom.
+
+It may also happen that you prefer to go the headless route. Plenty of projects use the powerful editing engine of CKEditor 5 but coupled with their own UI created in, for example, React. The most notable example is Microsoft Teams, believe it or not. Yes, it's using CKEditor 5.
+
+![Different types of WYSIWYG editor UI.][6]
+
+### 2. Choose a full-featured editor or a lightweight one
+
+In digital content editing, there's no "one size fits all" solution. Depending on the type of content you need, the feature set differs. CKEditor 5 has a plugin-based architecture and features are implemented in a highly decoupled and granular way.
+
+It's easy to get lost in all the possible features, sub-features, and configuration options without some guidance. Here are some useful resources to help you build the editor that's a perfect match for your use case:
+
+- Try the [feature-rich editor demo][7] to test some of the most popular features.
+- Look at some other editor setups [on the demo page][5]. You can find the complete source code of each demo in the [ckeditor5-demos repository][8].
+- The entire **Features** section of the [documentation][9] explains all CKEditor 5 features, possible configuration options, toolbar buttons, and API.
+- [CKEditor 5 online builder][10] is a quick and easy solution to build your custom editor in 5 steps. It allows you to choose the UI type, plugins, toolbar setup, and UI language and then download a ready-to-use editor bundle.
+
+![A full-featured and lightweight WYSIWYG editor.][11]
+
+### 3. Integrations with JavaScript frameworks
+
+The online builder and demos are a fun playground if you want to test a few solutions in a no-code fashion, but you may need tighter integration. You can also install CKEditor 5 with npm, or bundle it with your app using webpack or Vite. CKEditor 5 is written in pure TypeScript and JavaScript, so it's compatible with every JavaScript framework available.
+
+Four official integrations are available for the most popular frameworks:
+
+- Angular
+- React
+- Vue.js v2
+- Vue.js v3
+
+For example, to set up the Classic Editor (used in my first example) in React, you can use this one-liner:
+
+```
+npx create-react-app ckeditor5-classic-demo \
+--template @ckeditor/ckeditor5-classic
+```
+
+### 4. Markdown and HTML
+
+For some developers, Markdown might feel like second nature. It has its limitations, though. For example, support for tables is quite basic. Still, for many users, crafting content in Markdown is much more efficient than using the editor UI to format it.
+
+And here's the fun part. Thanks to CKEditor's autoformatting, you can use Markdown syntax when writing, and the editor formats the content as you type.This is a nice compromise for covering the needs of both power users and users unfamiliar with Markdown and preferring to create rich text using the WYSIWYG UI.
+
+![YouTube Video][11]
+
+### 5. Different input and output
+
+Autoformatting is just one aspect of Markdown support in CKEditor 5. Another is that you can configure the editor to treat Markdown as its input and output format instead of HTML.
+
+![Support for Markdown source in CKEditor 5.][13]
+
+Here's another challenge. If you allow the users to input content in your app, they can create it there but also paste it from different sources (other websites, Microsoft Word, Google Docs). They naturally expect the structure and formatting of pasted text to be preserved. This may result in some nasty styles and unwanted elements making their way to your content, and you have to clean up. Instead of trying to reconcile these two potential clashes of interest by yourself, it's better to rely on a good editor that solves this problem for you.
+
+In the case of CKEditor 5, the **Paste from Office** feature provides great support for pasting content from Word or Google Docs, preserving the structure, and translating the formatting into semantic content.
+
+The default CKEditor 5 settings also prevent users from adding or pasting elements and styles unsupported by the feature set chosen for your editor. If you, as an integrator, configure the editor to support just links, lists, and basic styles such as bold or italic, then the user can't add tables, images, or YouTube videos.
+
+Then again, if you would like your editor to accept content that's not covered by your feature set or even not supported by any existing CKEditor 5 features, you can achieve that thanks to the so-called **General HTML support** functionality. This is useful for loading pre-existing content created in other tools, and can make your migration to CKEditor 5 easier.
+
+### Building custom plugins
+
+No matter how great a ready-made solution is, you may still need to customize it even more. After all, thanks to reusing an advanced WYSIWYG editing component, you've saved yourself plenty of time and coding effort. You may want to get your hands dirty and polish your solution a bit, for example, by creating custom plugins.
+
+Here are some useful resources to get you started:
+
+- [Creating your own plugins][14]: Documentation for developers.
+- [Package generator][15]: A handy tool that helps you set up your plugin development environment.
+- [CKEditor 5 inspector][16]: Debugging tools for editor internals like model, view, and commands.
+
+![An editor instance examined in CKEditor 5 inspector.][17]
+
+### How to get CKEditor
+
+CKEditor 5 is licensed under the terms of GPL 2 or later, but if you are running an open source project under an OSI-approved license incompatible with GPL, the CKEditor team is [happy to support you][18] with a no-cost license.
+
+CKEditor 5 is a powerful modern rich text editor framework that allows developers to build upon an open source, tested, and reliable editor. Start-ups, leading brands, and software providers use it to improve both their content creation and content production workflows. If your users value those benefits, [check it out][2]!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/4/website-text-editor-ckeditor
+
+作者:[Anna Tomanek][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/annatomanek
+[b]: https://github.com/lkxed/
+[1]: https://github.com/ckeditor/ckeditor5
+[2]: https://ckeditor.com/ckeditor-5/
+[3]: https://ckeditor.com/docs/ckeditor5/latest/api/module_editor-classic_classiceditor-ClassicEditor.html#static-function-create
+[4]: https://opensource.com/sites/default/files/2023-03/100002010000063E00000138357C421E3B4E1584.webp
+[5]: https://ckeditor.com/ckeditor-5/demo/
+[6]: https://opensource.com/sites/default/files/2023-03/1000020100000641000003857D449853B71C3F41.webp
+[7]: https://ckeditor.com/ckeditor-5/demo/feature-rich/
+[8]: https://github.com/ckeditor/ckeditor5-demos
+[9]: https://ckeditor.com/docs/ckeditor5/latest/index.html
+[10]: https://ckeditor.com/ckeditor-5/online-builder/
+[11]: https://opensource.com/sites/default/files/2023-03/100002010000064100000385F7C262D126752F22.webp
+[12]: https://www.youtube.com/embed/8um84htrjXQ
+[13]: https://opensource.com/sites/default/files/2023-03/10000201000006410000038504C1A8A0DEA95683.webp
+[14]: https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/plugins.html
+[15]: https://www.npmjs.com/package/ckeditor5-package-generator
+[16]: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/development-tools.html#ckeditor-5-inspector
+[17]: https://opensource.com/sites/default/files/2023-03/10000201000007F60000060EFCB2F92FBCC02B4E.webp
+[18]: https://ckeditor.com/contact/
\ No newline at end of file
diff --git a/sources/tech/20230403.4 ⭐️⭐️ How to Install KVM on Rocky Linux 9 AlmaLinux 9.md b/sources/tech/20230403.4 ⭐️⭐️ How to Install KVM on Rocky Linux 9 AlmaLinux 9.md
new file mode 100644
index 0000000000..6c596627aa
--- /dev/null
+++ b/sources/tech/20230403.4 ⭐️⭐️ How to Install KVM on Rocky Linux 9 AlmaLinux 9.md
@@ -0,0 +1,240 @@
+[#]: subject: "How to Install KVM on Rocky Linux 9 / AlmaLinux 9"
+[#]: via: "https://www.linuxtechi.com/install-kvm-on-rocky-linux-almalinux/"
+[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install KVM on Rocky Linux 9 / AlmaLinux 9
+======
+
+In this guide, we demonstrate how to install KVM on Rocky Linux 9 / Alma Linux 9.
+
+KVM, short for Kernel Virtualization Machine, is an opensource virtualization platform designed for the Linux kernel. It’s a type 1 hypervisor, or commonly referred to as a bare metal hypervisor. It allows users to create and manage multiple guest machines which can be spun from either Linux or Windows operating systems.
+
+Like most virtualization platforms, it abstracts hardware resources such as CPU, memory, storage, network, graphics etc. and allocates them to guest machines which run independently of the host.
+
+##### Prerequisites
+
+- Pre Installed Rocky Linux 9 / AlmaLinux 9
+- Sudo User with admin rights
+- Internet Connectivity
+
+### 1) Verify if hardware Virtualization is Enabled
+
+To start off, you need to verify if your system has the virtualization feature enabled. On most modern systems, this feature comes already enabled in the BIOS. But just to be sure, you can verify if virtualization is enabled as shown.
+
+The command probes for the presence of vmx (Virtual Machine Extension) which is a CPU flag for Intel hardware virtualization or svm which is the flag for AMD hardware virtualization.
+
+```
+$ cat /proc/cpuinfo | egrep "vmx|svm"
+```
+
+From the following output, you can see that our system has Intel Hardware virtualization enabled.
+
+### 2) Install KVM on Rocky Linux 9 / AlmaLinux 9
+
+Once you have ensured that virtualization is enabled, the next step is to install KVM and management tools. To do so, run the following dnf command.
+
+```
+$ sudo dnf install qemu-kvm virt-manager libvirt virt-install virt-viewer virt-top bridge-utils bridge-utils virt-top libguestfs-tools -y
+```
+
+Once the installation is complete, run the following command to check if the required KVM modules have been loaded.
+
+```
+$ lsmod | grep kvm
+```
+
+You should get the following output to confirm that the necessary modules have been loaded.
+
+### 3) Start and Enable the libvirtd daemon
+
+In the next step, be sure to start the libvirtd daemon. This is a server-side daemon component that runs and manages tasks on virtualized guests. It is used to manage virtualization technologies such as Xen, KVM, and ESXi to mention a few.
+
+To start the libvirtd daemon, run the command:
+
+```
+$ sudo systemctl start libvirtd
+```
+
+Be sure to enable the service to start on boot time.
+
+```
+$ sudo systemctl enable --now libvirtd
+```
+
+Verify that the libvirtd daemon is running as follows.
+
+```
+$ sudo systemctl status libvirtd
+```
+
+### 4) Setup the Bridge Interface
+
+So far, we have installed KVM, and all the management tools and we can, in fact, proceed to spin up a virtual machine. However, it would be nice if we can access the VMs from outside the hypervisor network. To accomplish this, we need to create a bridge interface.
+
+First, identify the network interfaces on your system.
+
+```
+$ sudo nmcli connection show
+```
+
+From the output, ens160 is the active network interface, be sure to take note of the interface in your case as you will use it along the way.
+
+To begin creating the bridge, first, delete the connection using its UUID in the following syntax.
+
+$ sudo nmcli connection delete UUID
+
+In our case, the command will be:
+
+```
+$ sudo nmcli connection delete 19e98123-9a84-30a6-bc59-a7134446bb26
+```
+
+You will get a confirmation that the connection has successfully been deleted.
+
+Before proceeding any further, it would be prudent to have the following details at hand:
+
+- BRIDGE NAME – Preferred name of the new bridge (e.g. “br1”)
+- DEVICE NAME – This is the name of your network interface. This will serve as the bridge slave (e.g., “ens160”)
+- IP ADDRESS/SUBNET – The IP address and subnet for the bridge network (e.g., “192.168.2.50/24”). Note that this should correspond with your network subnet and IP addressing.
+- GATEWAY – Default gateway address of your network (e.g. “192.168.2.1”)
+- DNS1 and DNS2 – Preferred DNS addresses (e.g. “8.8.8.8” and “8.8.4.4”)
+
+Moving on, create a new bridge interface using the following syntax.
+
+$ sudo nmcli connection add type bridge autoconnect yes con-name BRIDGE NAME ifname BRIDGE NAME
+
+In our case, br1 is the preferred bridge interface name. Therefore, the command will be as shown.
+
+```
+$ sudo nmcli connection add type bridge autoconnect yes con-name br1 ifname br1
+```
+
+In the next steps, you will modify the bridge by specifying the IP subnet, Gateway, and DNS values.
+
+Start off by specifying the IP subnet using the following syntax.
+
+$ sudo nmcli connection modify BRIDGE NAME ipv4.addresses IP ADDRESS/SUBNET ipv4.method manual
+
+According to our setup, the command will be.
+
+```
+$ sudo nmcli connection modify br1 ipv4.addresses 192.168.2.150/24 ipv4.method manual
+```
+
+Next, specify the gateway address using the following syntax
+
+$ sudo nmcli connection modify BRIDGE NAME ipv4.gateway GATEWAY
+
+According to our network, the command takes the following format.
+
+```
+$ sudo nmcli connection modify br1 ipv4.gateway 192.168.2.1
+```
+
+The syntax for the DNS address is as follows.
+
+$ sudo nmcli connection modify BRIDGE NAME ipv4.dns DNS1 +ipv4.dns DNS2
+
+And the command takes the following format.
+
+```
+$ sudo nmcli connection modify br1 ipv4.dns 8.8.8.8 +ipv4.dns 8.8.4.4
+```
+
+Thereafter, use the following command to add the bridge slave.
+
+$ sudo nmcli connection add type bridge-slave autoconnect yes con-name DEVICE NAME ifname DEVICE NAME master BRIDGE NAME
+
+Using our values, the command is as shown.
+
+```
+$ sudo nmcli connection add type bridge-slave autoconnect yes con-name ens160 ifname ens160 master br1
+```
+
+You will get the following confirmation that the bridge slave was successfully added. Keep in mind that the bridge slave is your network interface or adapter.
+
+To confirm that the bridge was created, run the following command:
+
+```
+$ sudo nmcli connection show
+```
+
+From the output, you can see that the bridge interface is listed.
+
+To activate it, run the command:
+
+```
+$ sudo nmcli connection up br1
+```
+
+In addition, you can verify this using the ip addrcommand.
+
+```
+$ ip addr | grep br1
+```
+
+Lastly, edit the bridge configuration file.
+
+```
+$ sudo vi /etc/qemu-kvm/bridge.conf
+```
+
+Add the following line.
+
+```
+allow all
+```
+
+Then restart the virtualization daemon to apply the change
+
+```
+$ sudo systemctl restart libvirtd
+```
+
+### 5) Create a Virtual Machine
+
+With KVM installed and the bridge connection configured, let’s now create a virtual machine. Before doing, assign the necessary ownership right to the logged-in user in order to run commands without switching to root.
+
+```
+$ sudo chown -R $USER:libvirt /var/lib/libvirt/
+```
+
+On the command line, we will create a virtual machine using Ubuntu 20.04 ISO image using the following syntax.
+
+```
+$ virt-install \
+--name Ubuntu \
+--ram 2048 \
+--vcpus 2 \
+--disk path=/var/lib/libvirt/images/ubuntu-20.04.img,size=15 \
+--os-variant ubuntu20.04 \
+--network bridge=br1,model=virtio \
+--graphics vnc,listen=0.0.0.0 \
+--console pty,target_type=serial \
+--cdrom /home/linuxtechi/Downloads/ubuntu-20.04.4-desktop-amd64.iso
+```
+
+Once the command is executed, the graphical screen session will be launched, and the installation of the guest operating system will commence.
+
+##### Conclusion
+
+This concludes our article on how to install KVM on Rocky Linux 9 / AlmaLinux 9 Your feedback s highly welcome.
+
+--------------------------------------------------------------------------------
+
+via: https://www.linuxtechi.com/install-kvm-on-rocky-linux-almalinux/
+
+作者:[Pradeep Kumar][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.linuxtechi.com/author/pradeep/
+[b]: https://github.com/lkxed/
diff --git a/translated/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md b/translated/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md
new file mode 100644
index 0000000000..ea35405d69
--- /dev/null
+++ b/translated/talk/20220726 Open Source Software- Is There an Easy Path to Success-.md
@@ -0,0 +1,93 @@
+[#]: subject: "Open Source Software: Is There an Easy Path to Success?"
+[#]: via: "https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/"
+[#]: author: "Jules Graybill https://www.opensourceforu.com/author/jules-graybill/"
+[#]: collector: "lkxed"
+[#]: translator: "CanYellow"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+开源软件:存在成功的捷径吗?
+======
+
+开发开源软件背后的工作是相当庞大的。那么我们如何保证开源项目的成功呢?存在捷径吗?本文认为是没有的。
+
+![团队合作][1]
+
+今天,开源已经风靡世界。很多大型企业在快速成功的诱惑下被推向开源。但真实情况是世界上并不存在成功的捷径。你无法做到通过一次努力就能让所有的开源项目正常运行。
+
+事实上,上述公司早期遇到的许多挑战都不是技术上的,而是人员与文化上的。
+
+开发一个能够在市场上获得成功的开源项目需要同不同层级(的开源社区人员)一同工作。维护这样的项目也是一个持续的过程。所有这一切的关键在于找到以下这个非常基础的问题的正确答案:开源究竟是什么。
+
+### 开源是代码
+
+对于很多没有深刻认识到构成开源的不同层级(的开源社区人员)用户而言,答案相当简单:开源就是软件!这当然没有错,毕竟这就是我们多数人如何使用它的。不过,相比仅仅被视作软件而言,开源远不止这些。
+
+任何开源项目的实质仍然是代码本身。代码是使一个开源项目有别于其他项目并使其对用户有益的根本。当你在开源中工作的时候,代码和软件一样都是产品自身的一部分。
+
+从零开始开发一个(开源)项目或者复刻(fork)一个现有项目的分支,即便是在处理如此庞大而复杂的代码库时,也需要编写成千上万行代码。尤其是在创新一个现有项目的分支的情况下,在移除任何在先的许可证、宣传材料或者其他任何可能已经失去作用的文件时必须小心翼翼。终究是一个项目的功能吸引了它的用户群并维持项目的持续发展。当终端用户在考虑是否使用开源软件的时候,他们会阅读项目的源代码,而他们在其中所看到的应当是那些能够建立他们的信心的内容。
+
+### 开源是社区
+
+如何参与到社区中也是产品构建项目的一部分。创建一个社区并维护一个健康的社区关系是开源的核心之一,但对于大部分的领导者而言也往往是最坚难的任务,很少有人能很好地维护它。你可以尝试建立基金会或者提供赞助,但是最终还是人们自行决定是否想要加入社区。
+
+维护一定程度的社区透明度并不断保持也是重要的。社区可以随心所欲地参与项目。除了需要秘密进行的工作之外,诸如安全设置、签发证书、注册商标等,尽可能多的将你所做的工作展示给社区是相当重要的,这有助于取得社区信任。你终究需要对社区负责,你的项目成也社区,败也社区。这可能会导致你的项目开发更谨慎、更缓慢并且向社区公开,不过项目最终会进展顺利。
+
+如此地公开你正在进行的工作似乎有些令人生怯,尤其是当你担心更新推迟或者是出现漏洞的影响的时候。不过,让社区成员知悉你的进展不仅有助帮助你建立与社区之间的信任关系,而且能够让社区成员感到被认可。
+
+另一方面,公开你的工作流也可以获得来自社区成员的监督,他们经常有自己的见解并向你反馈。记录这些反馈是很重要的,这使得你的开源项目如实地反映社区需求。他们是项目的末端用户,而他们的反馈则反映了他们如何看待你的项目的长期发展以及你的项目最终将有多么成功或者主流。
+
+举例而言,当我们在考虑一个新功能的时候,我们在征求意见文档(RFC, Request for Comments)中发布一个征集意见的请求,我们会收到大量的反馈,我们必须认真思考应当如何吸收这些反馈。
+
+因为开源是一个大型的合作项目,社区在支持开源项目成为可能的万里挑一的项目上享有主动权。并非所有的问题都要解决,但只要你有在倾听社区的呼声,社区就会有参与感。
+
+参与到社区中也存在一些隐患。社区内部、项目维护与社区之间均可能存在不同意见,尤其是在涉及管理问题上。管理问题对于一个开源项目来说是相当重要的。这也就是为什么拥有一份清晰的文档化的管理条例对于项目以及社区均是如此重要。
+
+社区管理是一个关键的而又难啃的骨头。社区授权本身需要相当大的信任。对于一个拥有成千上万行代码的项目,在社区中寻找能够有效领导社区的人物是不容易的。不过开源项目经常是由更小的子项目组成的,这些子项目最好由社区中的某个人进行管理。这有助于社区更紧密地参与到项目中。
+
+| - |
+| :- |
+| 建立社区的过程不是一帆风顺的。让我列举一一些有助于维持社区与我的团队之间平衡的技巧。
+
+**声明你的原则:**尤其是在开源项目的早期,在项目代码仍在完善,很多事情还不完美的时候,项目之外的人员很难真正理解你所做的决定。向他们说明你做出决定所依据的原则有助于你在思考过程上保持坦率,从而让社区不会错误地干扰你的事务。
+
+这一经验非常有效,在你做出决定时坚持遵循其中一项原则并展示出来是非常重要的。
+
+*确定如何进行协作:*你可以通过Discord、Slack或者邮件等途径完成这一工作。但是如果你试图同时使用他们,你将毫不意外的分散项目社区。社区人员将在所有这些途径上互相交流。选择一到两种沟通工具,投身于他们来保证社区的信息同步。
+
+*珍惜反馈意见:*倾听来自社区的反馈并付诸行动。即使需要你作出艰难的决定,你也应当向社区展示你是重视社区话语的。
+
+**维护一套行为准则:**如果你与社区打交道,你需要定义什么行为是可以接受的。一套落地的行为准则有助于在人们越过红线时警示他们。如果你可以提前制定这些你可以避免很多麻烦。
+
+*考虑如何分发你的项目:*存在这样的情况,因为你还没有准备好某一个组件,或者是因为存在一些项目功能你不希望所有人都能够访问,所以你可能并不希望将你的项目完全向公众公开。关键是制定符合你的要求而不是向用户妥协的分发条款,如此,需要某种功能的用户可以获取所需项目的同时不需要该功能的用户也不需要做出妥协而开始使用该项目。
+
+*尽可能地避免投票:*这是因为部分成员经常会赞成与大部分成员的意见相左的选项,这会使这些人产生一定程度的失望,并让他们觉得被项目所孤立。反之,尽量尝试询问他们想要解决什么问题,并尝试创造一个不需要付出代价的解决方案。
+
+### 开源是许可
+
+开源是给予你的用户如何使用你的软件的自由,而许可能够做到这一点。一个开源项目许可是极好的,它保证了不论你作为维护者做了什么,你的所有终端用户以及利益相关方总是可以维护一系列的项目复刻版本,这些都是重要的项目复刻版。
+
+许可提供了人们可选择性,如果他们认为有必要,他们可以将项目复制到不同的路径中。他们拥有创建副本的权利,这使得许多优秀的软件能够被开发出来。维护者有责任倾听他们的社区成员的声音并以一个对项目的社区成员有利的方式运营项目。
+
+我们推荐使用现有的许多可用的许可证而不是独立制作你自己的许可条款,仅仅只是因为用户以及利益相关方通常都很熟悉公共许可证,因此你不需要再花费时间在解释许可条款上。这将帮助你将你的精力集中在项目的其他部分上。
+
+### 最后,开源是一项运动
+
+开源包括了很多维度,也包含了很多人员。最重要的是,它是有关理解人们想要什么的,也是有关创建一个鼓励协作与透明的环境的。开源也是有关创建有利于开源项目走自己想走的道路的社区的。维护者创造越多的机会让社区自由发挥,开源产品就越好,也越发成功。
+
+开源是以上这些方面,而你的视野越宽阔,你就能越好的利用它。请考虑你如何能够在开源的每一个维度上出类拔萃,因为时至今日,开源的成功之路并无捷径。
+
+
+via: https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/
+
+作者:[Jules Graybill][a]
+选题:[lkxed][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.opensourceforu.com/author/jules-graybill/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/07/team-work-working-together-1.jpg
diff --git a/translated/tech/20211124 5 open source alternatives to Microsoft Exchange.md b/translated/tech/20211124 5 open source alternatives to Microsoft Exchange.md
new file mode 100644
index 0000000000..f832eb33df
--- /dev/null
+++ b/translated/tech/20211124 5 open source alternatives to Microsoft Exchange.md
@@ -0,0 +1,99 @@
+[#]: subject: "5 open source alternatives to Microsoft Exchange"
+[#]: via: "https://opensource.com/article/21/11/open-source-alternatives-microsoft-exchange"
+[#]: author: "Heike Jurzik https://opensource.com/users/hej"
+[#]: collector: "lujun9972"
+[#]: translator: "XiaotingHuang22"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+可以替代 Microsoft Exchange 的5个开源软件
+======
+不再将就于 Microsoft Exchange 这一专有软件,试一试这些基于 Linux 系统的电子邮件和群件服务吧。
+![在团队中工作,忙碌的工作生活][1]
+
+几十年来,Microsoft Exchange 一直统治着电子邮件和群件服务市场。 作为领头羊,它主宰着企业界,无处不在的 Outlook 邮件客户端已成为群件同行里的事实标准。 由于 Exchange 与 Microsoft 的 Office 产品紧密联系,无论是桌面客户端还是移动客户端,微软用户都可以轻松使用各种生产力软件和功能。
+
+然而,许多公司对于将数据存储在 Microsoft 云中也心存疑虑。 在本文中,我将介绍一些开源替代产品及其优势。 这不仅有关如何不再受供应商控制和降低成本,更关乎使用具有开放标准和不同安全级别的软件——用于组件服务器本身及其背后的操作系统。
+
+本文中介绍的这五个替代产品都是基于 Linux 的。 虽然 grommunio、Kopano、Nextcloud、ownCloud 和 OX App Suite 在功能上差异很大,吸引到的企业类型各不相同,但它们都提供免费版本,并可选择购买付费支持服务和附加组件。 所有产品都可以在本地或云端运行。 最重要的是,所有供应商都为其软件提供 SaaS (Software as a Service,软件即服务) 解决方案。
+
+### grommunio
+
+[grommunio][2],以前被称为 grammm,在 AGPLv3 许可下发布的。 它由奥地利同名公司开发和支持。 与 Exchange 不同,grommunio 提供符合标准的邮件服务器以及功能齐全的群件解决方案,具有电子邮件、联系人、日历、任务、文件共享等功能。 grommunio 适用于各种开源和专有邮件客户端,如 Windows Mail、Outlook、Android、Apple Mail/iOS、Thunderbird 等,并支持旧的 RPC over HTTP 协议和 Outlook 标准协议 MAPI over HTTP。 除此之外还包含:用于移动设备的 Exchange ActiveSync 和各种标准协议,如 CalDAV(日历)、CardDAV(地址簿)、IMAP、POP3、SMTP 和 LDAP,以及 Active Directory(用于同步用户帐户)。
+
+外部开源应用程序还提供了一些 Microsoft 的 API 或协议不支持的功能。 例如,开发人员合并了 [Jitsi][3](视频和音频电话软件)、[Mattermost][4](聊天软件)以及文件共享和同步([ownCloud][5])。除此之外,grommunio 还配备了基本的移动设备管理软件 (MDM)。
+
+grommunio 的设计面向大量不同的用户,并且与 Exchange 一样,它支持数据库分片(数据库在多个主机之间的水平分布)。 灵活的存储后端允许管理员通过添加其他服务器或云帐户来扩展他们的设置。 grommunio 仅将 MySQL 数据库用于元数据,而所有“内容”(例如邮件和群件对象)都存储在每个用户的 SQLite 数据库中。 有关底层架构的更多信息,请查看[制造商的网站][6]。
+
+社区版是免费的,其中包括所有的 grommunio 功能并支持最多五个用户帐户。
+
+### Kopano
+
+来自德国和荷兰的软件制造商 Kopano 出品的 [Kopano][7] 也获得了 AGPLv3 许可并基于 Zarafa 软件堆栈。 与其前身不同,Kopano 的目标不只是成为 Exchange 的替代品。 相反,它提供一个完整的群件解决方案,除了电子邮件、联系人、日历、任务、笔记和文档编辑这些标准功能外,它还包括实时通信。 Kopano 与[许多其他平台][8]、应用程序和服务交互,其中一些通过插件就能轻松实现。 对于视频会议,Kopano 团队基于 WebRTC 开发了自己的开源解决方案:Kopano Meet 提供端到端加密,在 Windows、macOS、Linux、Android 和 iOS 客户端都适用。
+
+Outlook 客户端通过 ActiveSync(Z-Push 库)或 [Kopano OL Extension][9] (KOE) 来同步移动数据,KOE 是已经包含的 ActiveSync 的加强版。 Kopano 提供本机 Web 客户端 (WebApp)、移动设备客户端 (Mobility) 以及支持 Windows、Linux 和 macOS 的桌面版本 (DeskApp)。 它可以通过 IMAP、CalDAV 和 CardDAV 连接其他客户端。 所有直接连接到 Kopano 服务器的应用程序都使用 SOAP(简单对象访问协议)中的 MAPI。
+
+Kopano Groupware 和 Kopano ONE(Kopano Groupware 的特别版)都提供免费的社区版本。 Kopano Meet 还可以作为应用程序或容器下载。
+
+### Nextcloud
+
+[Nextcloud][10] 在斯图加特和柏林(德国)都有办事处,已获得 AGPLv3 许可。 与 ownCloud 或 Dropbox 一样,用户可以通过桌面(Windows、Linux 和 macOS)、网络浏览器或本地应用程序(Android 和 iOS)访问软件套件。 从 18 版本开始,Nextcloud 除了拥有 Nextcloud Files(文件同步和共享)还包括了 Nextcloud Talk(通话、聊天和网络会议)和 Nextcloud Groupware(日历、联系人和邮件),并更名为 Nextcloud Hub。
+
+用户和群组管理通过 OpenID 或 LDAP 进行。 Nextcloud 支持各种存储后端,例如 FTP、S3 和 Dropbox。 Nextcloud 可与多种数据库管理系统配合使用,包括 PostgreSQL、MariaDB、SQLite 和 Oracle 数据库。 管理员可以通过 [Nextcloud 应用程序商店][11] 中的 200 多个应用程序扩展功能,其中包括实时通信、音频和视频聊天、任务管理、邮件等等。
+
+Nextcloud 是完全免费的。 最重要的是,该公司提供了 Nextcloud Enterprise 版本(针对企业部署进行了预配置、优化和强化)
+
+### ownCloud
+
+[ownCloud][12] 是由位于德国纽伦堡的 ownCloud GmbH 公司开发和维护的具有文件同步、共享和内容协作功能的软件。 它的客户端-服务器软件的核心和许多社区应用程序都是在 AGPLv3 下发布的。 一些扩展功能的企业应用程序获得 ownCloud 商业许可证 (OCL) 许可。
+
+ownCloud主要是一款内容协作软件,包括在线办公文档编辑、日历、联系人同步等功能。移动客户端支持 Android 和 iOS,桌面应用可以和 Windows、macOS 和 Linux 的原生文件管理器结合使用。它允许访问 Web 界面,无需安装专用客户端软件。 ownCloud 支持 WebDAV、CalDAV 和 CardDAV 协定。 LDAP 协定也包含其中,但 ownCloud 同时连接到支持 OpenID Connect 身份验证标准的其他身份提供者。
+
+ownCloud 可以整合 Microsoft Office Online Server、Office 365 和 Microsoft Teams,同时为Microsoft Outlook 和 eM Client 提供可用插件。 如有必要,外部存储功能可连接到不同的存储提供商,例如 Amazon S3、Dropbox、Microsoft SharePoint、Google Drive、Windows 网络驱动器 (SMB) 和 FTP。 该供应商还为企业客户提供额外的功能,如端到端加密、勒索软件和防病毒保护等(请参阅[完整功能列表][13])。
+
+社区版免费且 100% 开源。
+
+### OX 应用套件
+
+[Open-Xchange][14] 成立于 2005 年,总部位于德国奥尔佩和纽伦堡。 今天,OX 在多个欧洲国家、美国和日本设有办事处。 [OX App Suite][15] 是一个模块化的电子邮件、通信和协作平台,主要为电信公司、托管公司和其他提供基于云的服务的提供商而设计。
+
+OX 后端在 GPLv2 协议下发布,前端(UI)在 AGPLv3 下发布。 用户可以通过他们喜欢的浏览器(完全个性化的门户)或移动应用程序(Android 和 iOS)访问应用程序套件。 或者,本机客户端(移动设备和台式机)可用于 OX Mail 和 OX Drive。 得益于 CardDAV 和 CalDAV 扩展、Exchange Active Sync 和适用于 Android 的 OX Sync App,联系人、日历和任务得以同步。
+
+OX 应用套件包含用于电子邮件、联系人、日历和任务的应用程序。 还有其他工具和扩展可用,其中一些是开源的,一些功能则要付费,包括 OX Documents(文本文档、电子表格、演示文稿)、OX Drive(管理、共享和同步文件)、OX Guard(电子邮件和文件加密)等等。 如需完整列表,请访问 OX 网站的[一般条款和条件][16]。
+
+该应用免费提供有限功能的社区版。
+
+### 开源电子邮件和群件
+
+电子邮件和群件服务并不是必须花费(大量)金钱才可获得,更没有必要将就自己,(为了免费的服务而)依靠一个私人专有的、属于别人的服务器。 如果你不太热衷于管理职责,那么上述的这五个 Exchange 开源替代品都可以作为 SaaS 解决方案使用。 或者,所有供应商都提供专业技术支持,您可以在本地运行软件——一切尽在你的掌握中,但你却不会感觉自己孤军无援。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/21/11/open-source-alternatives-microsoft-exchange
+
+作者:[Heike Jurzik][a]
+选题:[lujun9972][b]
+译者:[XiaotingHuang22](https://github.com/XiaotingHuang22)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/hej
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
+[2]: https://grommunio.com/
+[3]: https://opensource.com/article/20/5/open-source-video-conferencing
+[4]: https://opensource.com/article/20/7/mattermost
+[5]: https://opensource.com/article/21/7/owncloud-windows-files
+[6]: https://grommunio.com/features/architecture/
+[7]: https://kopano.com/
+[8]: https://kopano.com/products/interoperability/
+[9]: https://kb.kopano.io/display/WIKI/Setting+up+the+Kopano+OL+Extension
+[10]: https://nextcloud.com/
+[11]: https://apps.nextcloud.com/
+[12]: https://owncloud.com/
+[13]: https://owncloud.com/features/
+[14]: https://www.open-xchange.com/
+[15]: https://www.open-xchange.com/products/ox-app-suite/
+[16]: https://www.open-xchange.com/terms-and-conditions/
diff --git a/translated/tech/20230315.2 ⭐️ How to set up your own open source DNS server.md b/translated/tech/20230315.2 ⭐️ How to set up your own open source DNS server.md
deleted file mode 100644
index b27313ad45..0000000000
--- a/translated/tech/20230315.2 ⭐️ How to set up your own open source DNS server.md
+++ /dev/null
@@ -1,62 +0,0 @@
-[#]: subject: "How to set up your own open source DNS server"
-[#]: via: "https://opensource.com/article/23/3/open-source-dns-server"
-[#]: author: "Amar Gandhi https://opensource.com/users/amar1723"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-如何设置自己的开源 DNS 服务器
-======
-
-域名服务器 (DNS) 将域名(如 example.com)与 IP 地址(如 93.184.216.34)相关联。这就是当你输入 URL 或搜索引擎返回 URL 供你访问时,你的网络浏览器如何知道在世界的哪个地方寻找数据。DNS 为互联网用户提供了极大的便利,但也并非没有缺点。例如,付费广告会出现在网页上,因为你的浏览器自然会使用 DNS 来解析这些广告在互联网上“存在”的位置。同样,跟踪你在线活动的软件通常由通过 DNS 解析的服务启用。你不想完全关闭 DNS,因为它非常有用。但是你可以运行自己的 DNS 服务,以便更好地控制它的使用方式。
-
-我相信运行自己的 DNS 服务器至关重要,这样你就可以阻止广告并保持你的浏览隐私,远离试图分析你的在线交互的提供商。我过去用过 [Pi-hole][1],今天仍然推荐它。然而,最近,我一直在我的网络上运行开源项目 [Adguard Home][2]。我发现它有一些值得探索的独特功能。
-
-### Adguard Home
-
-在我使用过的开源 DNS 软件中,[Adguard Home][2] 是最容易设置和维护的。你可以在一个项目中获得许多 DNS 解析解决方案,例如 DNS over TLS、DNS over HTTPS 和 DNS over QUIC。
-
-你可以使用一个脚本将 Adguard 设置为容器或本地服务:
-
-```
-$ curl -s -S -L \
-https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh
-```
-
-查看脚本以便了解它的作用。熟悉安装过程后,运行它:
-
-```
-$ sh ./install.sh
-```
-
-我最喜欢 AdGuard Home 的一些功能:
-
-- 一个简单的管理界面
-- 使用 Adguard 阻止列表阻止广告和恶意软件
-- 单独配置网络上每个设备的选项
-- 强制在特定设备上进行安全搜索
-- 为管理界面设置 HTTPS,这样与它的远程交互是完全加密的
-
-我发现 Adguard Home 为我节省了时间。它的黑名单比 Pi-hole 上的黑名单更强大。你可以快速轻松地将其配置为 DNS over HTTPS。
-
-### 没有更多的恶意软件
-
-恶意软件是你计算机上不需要的内容。它并不总是对你有直接危险,但它可能会为第三方带来危险活动。这不是互联网曾经打算做的。我认为你应该托管自己的 DNS 服务,以保护你的互联网历史记录的私密性,并避免被 Microsoft、Google 和 Amazon 等已知跟踪器掌握。在你的网络上试用 Adguard Home。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/23/3/open-source-dns-server
-
-作者:[Amar Gandhi][a]
-选题:[lkxed][b]
-译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/amar1723
-[b]: https://github.com/lkxed/
-[1]: https://opensource.com/article/18/2/block-ads-raspberry-pi
-[2]: https://github.com/AdguardTeam/AdGuardHome
\ No newline at end of file
diff --git a/translated/tech/20230324.0 ⭐️ Open source tools for mind mapping.md b/translated/tech/20230324.0 ⭐️ Open source tools for mind mapping.md
new file mode 100644
index 0000000000..773ced8756
--- /dev/null
+++ b/translated/tech/20230324.0 ⭐️ Open source tools for mind mapping.md
@@ -0,0 +1,61 @@
+[#]: subject: "Open source tools for mind mapping"
+[#]: via: "https://opensource.com/article/23/3/open-source-mind-mapping"
+[#]: author: "Amrita https://opensource.com/users/amrita42"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+开源思维导图工具
+======
+
+在今天的世界和社交媒体中,许多人没有耐心阅读冗长的文字内容。视觉效果是吸引受众注意力的好方法。
+
+你知道吗,3M 公司的研究得出结论,视觉的处理速度是文字的 60,000 倍?视觉比文字更有冲击力,能增强创造性思维和记忆。
+
+### 一张图片胜过千言万语
+
+我看了一些常见的[Git命令][1]。我把 Git 命令作为主话题,每个子话题都是一个带有定义的 Git 命令语法。为此,我使用了 Wisemapping。
+
+![A git command mind map][2]
+
+不管你以前是否知道[思维导图][3]是什么,现在你看到了思维导图,你就可以理解这个概念了。这就是视觉的力量。
+
+### 如何创建一个思维导图?
+
+- 从主话题开始,把它放在你的画板中间。
+- 创建子话题并将它们与主话题联系起来。
+- 你可以为每个子话题添加细节,如定义、例子等。
+
+### 3 个你可以用来创建思维导图的开源工具
+
+看看这三个开源工具,为你的想法创建一个视觉:
+
+- [Wisemapping][4]
+- [Freeplane][5]
+- [Semantik][6]
+
+维基百科对思维导图的定义是:将信息直观地组织成一个层次,显示整体中各部分之间的关系。思维导图从一个中心话题开始,然后建立起关系。它是一种结构化思想和创造有影响力的演示的视觉方式。
+
+你可以在工作中使用思维导图。例如,我用思维导图来展示一个项目所计划的功能的高层概述。有了这些优秀的开源思维导图应用,你很容易就能开始将你的下一个项目可视化。试试用开源的思维导图吧。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/3/open-source-mind-mapping
+
+作者:[Amrita][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/amrita42
+[b]: https://github.com/lkxed/
+[1]: https://opensource.com/downloads/cheat-sheet-git
+[2]: https://opensource.com/sites/default/files/2023-03/mindmap.jpg
+[3]: https://opensource.com/article/21/12/open-source-mind-mapping-drawio
+[4]: https://www.wisemapping.com/
+[5]: https://opensource.com/article/19/1/productivity-tool-freeplane
+[6]: https://waf.io/semantik.html
\ No newline at end of file
diff --git a/translated/tech/20230327.0 ⭐️ How to Install Kubernetes (K8s) Metrics Server Step by Step.md b/translated/tech/20230327.0 ⭐️ How to Install Kubernetes (K8s) Metrics Server Step by Step.md
new file mode 100644
index 0000000000..9a5bca290f
--- /dev/null
+++ b/translated/tech/20230327.0 ⭐️ How to Install Kubernetes (K8s) Metrics Server Step by Step.md
@@ -0,0 +1,130 @@
+[#]: subject: "How to Install Kubernetes (K8s) Metrics Server Step by Step"
+[#]: via: "https://www.linuxtechi.com/how-to-install-kubernetes-metrics-server/"
+[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何逐步安装 Kubernetes (K8s) 指标服务器
+======
+
+在这篇文章中,我们将逐步介绍如何安装 Kubernetes 指标服务器。
+
+Kubernetes(k8s) 指标服务器是一个组件,用于收集和聚合来自 Kubernetes 集群中各种来源(包括节点和 Pod)的指标数据。此数据可用于监控和优化资源利用率、识别潜在问题并提高 Kubernetes 集群的整体性能。
+
+指标服务器收集资源利用率数据,例如集群中节点和 Pod 的 CPU 和内存使用情况。它提供了一个 API 端点,可用于查询此数据并检索集群中特定资源的指标。
+
+##### 先决条件
+
+- 启动并运行 Kubernetes 集群(v1.21 或更高版本)。
+- kubectl 命令行工具已安装并配置为与你的 Kubernetes 集群交互。
+- 创建和修改 Kubernetes 对象的能力。
+
+事不宜迟,让我们深入了解安装步骤。
+
+### 步骤 1) 下载指标服务器清单
+
+第一步是从 Kubernetes GitHub 仓库下载最新的指标服务器清单文件。使用下面的 curl 命令下载 yaml 文件:
+
+```
+# curl -LO https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
+```
+
+![][1]
+
+如果你计划在高可用性模式下安装指标服务器,请下载以下清单文件:
+
+```
+# curl https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
+```
+
+### 步骤 2)修改指标服务器 Yaml 文件
+
+接下来,你需要修改 Metrics Server yaml 文件以设置一些配置选项:
+
+```
+# vi components.yaml
+```
+
+找到 container 下的 args 部分,添加以下行:
+
+```
+- --kubelet-insecure-tls
+```
+
+在 spec 下,添加以下参数:
+
+```
+hostNetwork: true
+```
+
+![][2]
+
+保存并关闭文件。
+
+### 步骤 3)部署指标服务器
+
+现在,我们准备好部署指标服务器,运行以下 kubectl 命令:
+
+```
+# kubectl apply -f components.yaml
+```
+
+![][3]
+
+### 步骤 4)验证指标服务器部署
+
+部署指标服务器后,通过检查在 kube-system 命名空间中运行的 pod 状态来验证它的状态:
+
+```
+# kubectl get pods -n kube-system
+```
+
+![][4]
+
+上面的输出确认指标服务器 pod 已启动并正在运行。
+
+### 步骤 5)测试指标服务器安装
+
+最后,你可以通过运行以下 kubectl 命令来测试指标服务器:
+
+```
+# kubectl top nodes
+```
+
+此命令应显示集群中每个节点的资源利用率,包括 CPU 和内存使用率。
+
+![][5]
+
+要查看当前命名空间或特定命名空间的 pod 资源利用率,请运行:
+
+```
+# kubectl top pod
+# kubectl top pod -n kube-system
+```
+
+![][6]
+
+这就是这篇文章的全部内容,我希望你能从中找到有用的信息。请在下面的评论部分发表你的反馈和疑问。
+
+--------------------------------------------------------------------------------
+
+via: https://www.linuxtechi.com/how-to-install-kubernetes-metrics-server/
+
+作者:[Pradeep Kumar][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.linuxtechi.com/author/pradeep/
+[b]: https://github.com/lkxed/
+[1]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Download-Metrics-Server-Yaml-file-Curl-Command-1024x127.png?ezimgfmt=ng:webp/ngcb22
+[2]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Edit-Metrics-Server-Yaml-file.png
+[3]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Deploy-Metrics-Server-Kubectl-Command.png
+[4]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Metrics-Server-Pods-Status-Kube-System.png
+[5]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Kubectl-top-node-command-Output.png?ezimgfmt=ng:webp/ngcb22
+[6]: https://www.linuxtechi.com/wp-content/uploads/2023/03/Kubectl-top-pod-command-output.png
\ No newline at end of file
diff --git a/translated/tech/20230327.2 ⭐️ Use this open source accounting app to run your small business.md b/translated/tech/20230327.2 ⭐️ Use this open source accounting app to run your small business.md
new file mode 100644
index 0000000000..d9b61a76aa
--- /dev/null
+++ b/translated/tech/20230327.2 ⭐️ Use this open source accounting app to run your small business.md
@@ -0,0 +1,80 @@
+[#]: subject: "Use this open source accounting app to run your small business"
+[#]: via: "https://opensource.com/article/23/3/open-source-accounting-run-business"
+[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+使用这个开源的会计应用来管理你的小企业
+======
+
+[GnuCash][1] 是一个强大而灵活的会计工具,可用于小企业的发票和会计。它的许多功能使它特别适合这一目的,包括跟踪支出和收入、生成报告和管理发票的能力。此外,GnuCash 是免费和开源的,这使得资源有限的小企业也可以使用它。在这篇文章中,我会讨论 GnuCash 的特点,使你可以很容易地在自己的小企业中开始使用它。
+
+几年前,我开始使用 GnuCash 进行个人财务管理,但发现它也可以作为我的小企业的一个有用工具。在我企业的大部分时间里,我一直在使用一个专有的解决方案。我逐渐厌倦了被迫定期升级以获取我的小企业的发票和报表。转而使用 GnuCash,使我能够在不牺牲任何功能的情况下,将我的小企业会计与我的个人财务相结合。
+
+### 在 Linux 上安装 GnuCash
+
+你可以从你的仓库中安装 GnuCash。在 Debian、Elementary 和类似的软件上:
+
+```
+$ sudo apt install gnucash
+```
+
+在 Fedora、CentOS、Mageia 和类似系统上:
+
+```
+$ sudo dnf install gnucash
+```
+
+### 企业版 GnuCash
+
+GnuCash 带有一个账户设置向导,可以帮助你建立一个普通的商业账户配置。要访问它:
+
+- 启动 GnuCash。
+- 点击**文件**菜单,选择**新文件**。
+
+按照屏幕上出现的 GnuCash 助手来创建你的新商业账户文件。
+
+屏幕上的说明将指导你完成设置业务的过程。单击“**助手**”窗口右上角的“**下一步**”。系统会提示你输入公司名称、地址、联系信息和你自己选择的公司 ID。你还必须选择默认税表和日期格式。
+
+下一个页面提示你选择货币,有大量的货币支持。
+
+然后提示你选择你要创建的账户。选择创建**企业账户**的选项。你可以随时定制账户列表,GnuCash 提供了[大量的文档][2],帮助你更好地根据个人需求进行定制。
+
+完成助手,然后单击 GnuCash **助手**窗口右上角的**应用**。
+
+### 添加客户
+
+GnuCash 的顶部菜单有一个标有**业务**的菜单项。该菜单上的第一个项目是**客户**,其次是**客户概览**。在这里你可以查看你所有客户的列表。
+
+下一个项目是**新客户**。这是你输入新客户的地方。对话框为客户信息提供了一个位置,包括帐单信息、运输地址、电子邮件地址、电话号码等。
+
+### 创建一个发票
+
+添加客户后,你可以开始创建发票的过程。点击**业务**菜单,选择**客户**,然后点击**新发票**。
+
+付款处理也很简单。这位于**业务**菜单中。选择**客户**,然后**处理付款**。
+
+### 你在做生意了
+
+如果你的业务需要,**业务**菜单还包括输入供应商和雇员的选项。有一个菜单项用于销售税和许多其他选项,以确保你符合当地的要求。
+
+使用 GnuCash,你的数据不是以专有格式存储的,所以如果你需要,你可以在将来迁移到任何其他平台。数据存储的开放标准,特别是当这些数据是法律要求的时候,是很重要的,可以让你完全拥有你的商业历史。使用 GnuCash 使你能控制你的小企业。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/3/open-source-accounting-run-business
+
+作者:[Don Watkins][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/don-watkins
+[b]: https://github.com/lkxed/
+[1]: https://www.gnucash.org/
+[2]: https://www.gnucash.org/docs/v4/C/gnucash-guide/bus_setup.html
\ No newline at end of file
diff --git a/translated/tech/20230328.1 ⭐️⭐️ Rust Basics Series 1 Create and Run Your First Rust Program.md b/translated/tech/20230328.1 ⭐️⭐️ Rust Basics Series 1 Create and Run Your First Rust Program.md
new file mode 100644
index 0000000000..8467bdb2b6
--- /dev/null
+++ b/translated/tech/20230328.1 ⭐️⭐️ Rust Basics Series 1 Create and Run Your First Rust Program.md
@@ -0,0 +1,232 @@
+[#]: subject: "Rust Basics Series #1: Create and Run Your First Rust Program"
+[#]: via: "https://itsfoss.com/rust-introduction/"
+[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
+[#]: collector: "lkxed"
+[#]: translator: "mcfd"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Rust 基础系列 #1: 创建并运行你的首个 Rust 程序
+======
+
+![][1]
+
+Rust 是被开发者和科技公司所采用最快的系统编程语言之一。它也被每天使用它的开发者评为**最受欢迎的编程语言**之一。其[已经][2]**[连续七年][2]**[受到这种欢迎了][2]!
+
+它是如此的受欢迎,以致于现在有两股巨大的推力将其带入 Linux 生态系统中:
+
+- 包括 [Rust 将作为 Linux 内核的第二支持语言][3]
+- System76 [正在使用 Rust 重写他们自己的桌面环境][4]
+
+而这仅仅是在 Linux 生态系统中。安卓的蓝牙实现 [Gabeldorsche][5] 现在也是由 Rust 编写的。
+
+你是否看到了 Rust 的流行趋势?你大概率可能想学习使用 Rust 进行编程。
+
+### 为什么你要考虑 Rust 而不是其他编程语言?
+
+首先,Rust 是一门 **类型安全的编程语言** 并且 **拥有极其严格的编译期检查**。因此,你首先会 “被迫” 写不出不安全的代码(好吧,通常)。
+
+Rust 编程语言有以下 "目标":
+
+- **性能**:Rust 的二进制文件和 C 语言的二进制文件一样快,有时甚至超过了 C++ 的二进制文件!
+- **内存安全**:Rust 非常重视内存安全。
+- **并发**:对内存安全的关注消除了很多类似竞争的情况,并帮助你在程序中无畏并发。
+
+以下是在 C/C++ 等语言中可能犯的一些错误(但不是 Rust):
+
+- 释放后使用
+- 双重释放
+- 越界访问
+- 使用 `NULL`
+- 不适当的指针运算或访问
+- 使用未经初始化的变量
+- 线程不安全的多线程
+
+看看 [Apple][6], [Microsoft][7], [Google][8], [0day][9] 等大公司因这类错误而引起的问题吧。
+
+现在你可能知道了为什么要选择 Rust 语言而不是其他编程语言,让我们开始学习 Rust 语言的系列教程吧!
+
+### 目标受众
+
+出于对 Rust 的热爱,我写了这个系列的 Rust 教程,帮助你熟悉 Rust 编程的概念。
+
+这个教程系列是为已经熟悉 C 和 C++ 等编程语言的人准备的。我假设你已经知道了 _变量_、_函数_、_循环_ 等基本术语。
+
+我对你的唯一要求是你不懈的坚持与努力。
+
+### 安装 Rust 工具链
+
+我希望你能在本地安装 [Rust 工具链][10]。你可以通过运行以下命令来做到这一点:
+(LCTT 译注:如果你使用 Linux 发行版,请不要直接安装软件源里的 Rust 工具链,尽管这样看起来很便捷)
+
+```
+curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | sh
+```
+
+![Installing Rust on Ubuntu Linux][11]
+
+除了 Rust 基本工具链,我还建议再安装一些工具,这些工具将在开发过程中帮助你:
+
+```
+rustup component add rust-src rust-analyzer rust-analysis
+```
+
+💡
+
+如果你不希望在本地安装 Rust 工具链,不用担心。你还可以直接在你的浏览器中运行 Rust 代码!只要到
+
+[Rust Playgrounds website][12]
+
+ 并把所讨论的代码粘贴在此处。
+
+### Hello Rust!
+
+自从 Dennis Ritchie 和 Brian Kernighan 用 "Hello world" 程序介绍了 C 语言后,在 UNIX 世界里,对你学习的任何新的编程语言都要这样做,这已经成为一种习惯。
+
+因此,让我们也用 Rust 编写我们的 Hello World 程序。
+
+我将在我的家目录里[新建一个项目目录][13]叫做 `learn-rust-its-foss`。然后,在这里我将新建一个叫 `hello-world` 的目录。最后,在里面新建 `main.rs` 文件:
+
+```
+// 这串代码将打印字符
+// "Hello world!" 将被打印到 `标准输出`
+
+fn main() {
+ println!("Hello world!");
+}
+```
+
+📋
+
+就像 C、C++ 和 Java 源代码文件的扩展名是
+
+```
+.c
+```
+
+、
+
+```
+.cpp
+```
+
+ 和
+
+```
+.java
+```
+
+ Rust 的源文件扩展名是
+
+```
+.rs
+```
+
+ 文件扩展名
+
+作为一个 C/C++ 程序员,你可能已经在 [Linux 上使用 GCC][14],在 macOS 上使用 `Clang`,在 Windows 上使用 MSVC。但是为了编译 Rust 代码,该语言的创造者自己提供了一个官方的 `rustc` 编译器。
+
+运行 Rust 程序和[执行 C/C++ 程序][15]是一样的。你首先编译代码,然后得到可执行文件,最后再运行这个可执行文件从而来运行代码。
+
+```
+$ ls
+main.rs
+
+$ rustc main.rs
+
+$ ls
+main main.rs
+
+$ ./main
+Hello world!
+```
+
+很好!
+
+### 破译 Rust 代码
+
+现在你已经编写、编译并运行了你的第一个 Rust 程序,让我们对 "Hello world" 的代码进行解构并理解每一部分。
+
+```
+fn main() {
+}
+```
+
+`fn` 关键字是用来在 Rust 中声明一个函数的。在它后面 `main` 是这个被声明函数的名字。像许多编译型编程语言一样,`main` 是一个特殊的函数,用来作为你的程序的入口。
+
+任何写在 `main` 函数里的代码(在大括号 `{``}` 中)将在程序被启动时运行。
+
+#### println 宏
+
+在 `main` 函数中, 有一个语句(LCTT 译注:语句 区别于 表达式):
+
+```
+println!("Hello world!");
+```
+
+就像C语言的标准库有 `printf` 函数一样,Rust语言的标准库有 `println` **macro**。宏类似于函数,但它以**感叹号**来区分。你将在本系列的后面学习宏和函数的知识。
+
+`println` 宏接收一个格式化的字符串,并把它放到程序的标准输出中(在我们的例子中,就是终端)。由于我希望输出一些文本而不是一个变量,我将把文本放在双引号(`"`)内。最后,我用一个分号来结束这个语句,表示语句的结束。
+
+📋
+
+你只需知道,任何看起来像函数调用但有感叹号的东西
+
+```
+!
+```
+
+就是 Rust 编程语言中的一个宏。
+
+#### 注释
+
+Rust 遵循已知的 C 编程语言的注释风格。单行注释以两个正斜杠(`//`)开始,多行注释以 `/*` 开始,以 `*/` 结束。
+
+```
+// this is a multi-line comment
+// but nothing stops me to doing the same
+// on the second or third line too!
+
+/*
+ * this is a "true" mutli-line comment
+ * because it is _fancy_
+ */
+```
+
+### 总结
+
+你刚刚通过 Hello World 程序迈出了用 Rust 写代码的第一步。
+
+作为一种练习,也许你可以编写并执行一个打印出 "Yes! I did Rust" 的 Rust 程序。
+
+在本系列的下一部分中,你将学习在 Rust 程序中使用变量。敬请期待!
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/rust-introduction/
+
+作者:[Pratham Patel][a]
+选题:[lkxed][b]
+译者:[mcfd](https://github.com/mcfd)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/pratham/
+[b]: https://github.com/lkxed/
+[1]: https://itsfoss.com/content/images/2023/03/linux-mega-packt.webp
+[2]: https://survey.stackoverflow.co/2022/?ref=itsfoss.com#section-most-loved-dreaded-and-wanted-programming-scripting-and-markup-languages
+[3]: https://news.itsfoss.com/linux-kernel-6-1-release/?ref=itsfoss.com
+[4]: https://news.itsfoss.com/pop-os-cosmic-rust/?ref=itsfoss.com
+[5]: https://android.googlesource.com/platform//system/bt/+/83498aa554aea220fcff30b6310a0a7b4557969f/gd/rust/linux/stack/src/bluetooth.rs?ref=itsfoss.com
+[6]: https://langui.sh/2019/07/23/apple-memory-safety/?ref=itsfoss.com
+[7]: https://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/?ref=itsfoss.com
+[8]: https://security.googleblog.com/2019/05/queue-hardening-enhancements.html?ref=itsfoss.com
+[9]: https://docs.google.com/spreadsheets/d/1lkNJ0uQwbeC1ZTRrxdtuPLCIl7mlUreoKfSIgajnSyY/view?ref=itsfoss.com#gid=1190662839
+[10]: https://itsfoss.com/install-rust-cargo-ubuntu-linux/
+[11]: https://itsfoss.com/content/images/2023/03/install-rust.svg
+[12]: https://play.rust-lang.org/?ref=itsfoss.com
+[13]: https://itsfoss.com/make-directories/
+[14]: https://learnubuntu.com/install-gcc/?ref=itsfoss.com
+[15]: https://itsfoss.com/run-c-program-linux/