蚊章汇 - 2023年7月
type: channel
link: https://linuxcn.bwsl.wang/2023/07/
description: Linux中国社区镜像站，没有大保镖。
items: 活动资料下载｜LLUG 2023 上海场成功举办
items: 硬核观察 #1079 GNOME 正在开发新的马赛克窗口管理系统
items: Fedora Linux 的家族（一）：官方版本
items: 探索 Shell 脚本的威力
items: 硬核观察 #1078 FSF 指谷歌在 WEI 上的做法是“邪恶先锋”
items: Bash 基础知识系列 #6：处理字符串操作
items: 使用开源工具来举办线上大会
items: 硬核观察 #1077 科学海盗湾 Sci-Hub 创始人获 EFF 年度大奖
items: 专为技术写作人员提供的 7 条 Git 技巧
items: 如何在 Kubernetes 集群中设置动态 NFS 配置

活动资料下载｜LLUG 2023 上海场成功举办
type: item
date: 2023-07-31T22:59:00+08:00
description: 7 月 23 日下午，由 Linux 中国主办，龙蜥社区联合主办，奇虎 360、图灵社区、Slash Data 支持的 LLUG 2023 上海场活动在上海市 360 大厦成功举办。本次活动分为主题演讲和闪电演讲，来自技术社区、龙蜥社区和 Linux 中国的社区的分享者分享了自己的实践，现场的观众也在闪电演讲环节积极分享，大家热情交流。现场爱好者听分享腾讯云 TVP 肖力老师分享了他自己的成长路径，以及对于 Linux 新手们的建议，帮助大家理解云计算到底是什么以及如何更好的了解、使用云计算；龙蜥社区运营委员蔡佳丽则分享了龙蜥技术认证背后的设计理念和心得，并分享了目前龙蜥技术认证的具体情况；Linux 中国的技术组组长 Bestony 正式发布了 LCTT.Tools ，并进行了现场的演示，邀请更多社区爱好者参与并体验该工具。Linux 中国的创始人老王则远程分享了作为新手，如何更加高效的参与开源。肖力老师的现场分享龙蜥社区运营委员蔡佳丽分享龙蜥社区技术认证老王分享如何高效的参与开源除了主题演讲之外，来自现场爱好者的闪电演讲的分享，也赢得了满堂喝彩，胡张治同学分享了他自己从一个 Linux 小白逐渐成长为 ArchLinuxCN 的维护者的经历，并介绍他自己对于不同发行版的看法；来自大连的孙捂饭同学，则介绍了自己作为一个传统的运维工程师，对于 LLUG 线下活动的感想和体验；李轲韡介绍自己作为一个从事 Linux 发行版工作的软件公司，是如何看待 Anolis OS 的，帮助大家从一个从业者的视角，理解 Anolis OS 的价值；李伟光（a.k.a.地瓜）现场安利了一波 NeoVim，让大家知道了 Vim 的一个有趣的发行版。胡张治分享自己从 GNU/Linux 小白到 ArchLinuxCN 贡献者的旅程李伟光现场介绍 neovim 的使用PPT 及视频下载LLUG 的创办希望帮助 Linux 社区当中的每一个人都可以充分的交流经验和心得，所以我们也将本次活动的视频以及演示文稿开放出来，供大家查看。视频托管在 Bilibili，PPT 文稿则托管在 Github 的 Linux-CN/LLUG-Shares 仓库中，供大家下载。本次活动的 PPT 及视频的汇总在这里，方便大家下载和在线查看。类型活动主题主讲人PPT在线视频主题演讲浅谈云计算架构设计肖力下载地址bilibili主题演讲龙蜥技术认证介绍蔡佳丽下载地址bilibili主题演讲高效开源（个人篇）wxy下载地址暂缺（准备重新录制），文字稿主题演讲LCTT Tools Releasebestony下载地址bilibili闪电演讲从 GNULinux 小白到 archlinuxcn 维护者胡张治无bilibili闪电演讲技术，以人为本。沟通，无处不在孙捂饭无bilibili闪电演讲Neovim的简单介绍李伟光无bilibili闪电演讲浅谈龙蜥系统在千寻的应用和思考李轲韡无bilibili关于深圳，你想聊点什么？北京、上海，下一步，LLUG 将在 8 月份，来到鹏城深圳，和深圳的爱好者们，一起交流。如果你感兴趣，来到 LLUG 现场分享你和 Linux 的故事，欢迎扫描下方二维码，提交你的分享议题～议题提交（题图：MJ/2f6c9c25-86df-48c8-9268-7dd187cbe649）

硬核观察 #1079 GNOME 正在开发新的马赛克窗口管理系统
type: item
date: 2023-07-31T20:32:50+08:00
description: GNOME 正在开发新的马赛克窗口管理系统GNOME 希望能有更强大的窗口管理系统，除了经典的浮动堆叠模式和平铺模式外，他们设计了一种新的马赛克模式作为默认模式，它结合了平铺和浮动的优点。（不是你想的那个“马赛克”?）当你打开一个窗口，它就会以最适合应用程序的大小在屏幕中央打开。当你打开更多窗口时，现有的窗口会移到一边，为新窗口腾出空间。如果新窗口不合适，例如，因为它想最大化，它就会移动到自己的工作区。如果窗口布局接近填满屏幕，窗口就会自动平铺。但要想让每个人都满意新的窗口管理器，他们必须进行大量的用户研究，并测试无数种方案，可以想象，这可能需要数月甚至数年的时间。消息来源：GNOME老王点评：GNOME 和 KDE 不缺乏创新，并不只是抄袭 Windows 和 macOS，甚至反过来被抄袭。Linux 上的桌面环境缺乏的是精细打磨。目前仍有 10,000 台大型机在使用大型计算机通常被视为像恐龙一样古老的机器，但是，专门用于处理海量数据的大型机在今天仍然非常重要。据估计，目前仍在使用的大型机有一万台。世界上最大的公司几乎都在使用它们，其中包括三分之二的《财富》500 强公司。而这些大型机大多来自 IBM。今天的大型机可以拥有多达 240 个服务器级 CPU、40TB 的纠错 RAM 和多 PB 的冗余闪存二级存储。消息来源：Ars Technica老王点评：一方面，云计算并没有那么可靠，另外一方面，旧的信息基础设施很难迁移，或者说，不敢迁移。抗量子加密技术还需要数年能够破解公钥加密的量子计算机可能还需要几年时间。不幸的是，支持抗量子加密技术的产品也是如此。NIST 上周宣布的第二轮后量子算法评估预计将耗时数年，而 FIPS 产品验证流程也有后顾之忧。新标准一般需要 4 到 6 年的时间，供应商才能开发出执行该标准的专用集成电路，然后，供应商还需要时间来验证产品。由于现在窃取的加密数据可以在稍后解密，因此“现在收获，稍后解密”攻击的可能性“是一个已经存在的量子计算安全问题”。消息来源：E-Security Planet老王点评：如果不能在量子计算机真正发挥作用之前就部署好抗量子加密算法，那几乎可以肯定会面临大量的泄密事件，世界的真相也将更早揭晓。

Fedora Linux 的家族（一）：官方版本
type: item
date: 2023-07-31T17:14:00+08:00
description: Fedora Linux 提供了多个变体以满足你的需求。你可以在我之前的文章《Fedora Linux 的各种版本》中找到所有 Fedora Linux 变体的概述。本文将对 Fedora Linux 官方版本进行更详细的介绍。共有五个 版本 Edition ： Fedora Workstation、Fedora Server、Fedora IoT、Fedora CoreOS 和 Fedora Silverblue。Fedora Linux 下载页面目前显示其中三个为 官方 版本，另外两个为 新兴 版本。本文将涵盖所有五个版本。Fedora Workstation如果你是笔记本电脑或台式计算机用户，则 Fedora Workstation 是适合你的操作系统。Fedora Workstation 非常易于使用。你可以用它满足日常工作、教育、爱好等需求。例如，你可以使用它创建文档，制作演示文稿，上网冲浪，处理图像，编辑视频等等。这个 Fedora Linux 版本默认使用 GNOME 桌面环境。你可以使用这种环境舒适地工作和进行各种活动。你还可以根据个人喜好自定义 Fedora Workstation 的外观，让你在使用过程中更加舒适。如果你是 Fedora Workstation 的新用户，你可以阅读我之前的文章 在安装 Fedora Workstation 之后要做的事。通过该文章，你将更容易上手 Fedora Workstation。更多信息请参阅以下链接：Fedora WorkstationFedora Server许多公司需要自己的服务器来支持基础设施。Fedora Server 版操作系统配备了一个强大的基于 Web 的管理界面称为 Cockpit，具有现代化的外观。Cockpit 可以让你轻松查看和监控系统性能和状态。Fedora Server 包含一些开源世界中的最新技术，并得到一个活跃的社区的支持。它非常稳定可靠。然而，并不保证 Fedora 社区中的任何人都能够在你遇到问题时提供帮助。如果你运行的是关键任务的应用程序，并且可能需要技术支持，你可能要考虑使用 Red Hat Enterprise Linux。更多信息请访问以下链接：Fedora ServerFedora IoT为物联网设备专门设计的操作系统越来越受欢迎。Fedora IoT 就是为了应对这一需求而创建的操作系统。Fedora IoT 是一个不可变操作系统，使用 OSTree 技术来进行原子更新。该操作系统专注于物联网设备的安全性，这非常重要。Fedora IoT 支持多种架构。它还配备了一个基于 Web 的配置控制台，因此可以在不需要键盘、鼠标或监视器物理连接到设备的情况下进行远程配置。更多信息请访问以下链接：Fedora IoTFedora CoreOSFedora CoreOS 是一个面向容器的操作系统。该操作系统用于在任何环境中安全可靠地运行应用程序。它设计用于集群，但也可以作为独立系统运行。该操作系统与 Linux 容器配置具有高度兼容性。更多信息请访问以下链接：Fedora CoreOSFedora Silverblue这个版本是 Fedora Workstation 的一个变体，界面并没有太大区别。但是，Fedora Silverblue 是一个不可变的操作系统，采用以容器为中心的工作流程。这意味着每个安装的副本与同一版本的其他副本完全相同。其目标是使其更加稳定，更少出现错误，并更容易进行测试和开发。更多信息请访问以下链接：Fedora Silverblue结论Fedora Linux 的每个版本都有不同的目的。多个版本的可用性可以帮助你获得适合你需求的操作系统。本文讨论的 Fedora Linux 版本是在 Fedora Linux 的主要下载页面上提供的操作系统。你可以在 https://getfedora.org/ 找到下载链接和更完整的文档说明。（题图：MJ/90ffba71-aee2-4429-a846-41f06997792c）via: https://fedoramagazine.org/fedora-linux-editions-part-1-official-editions/作者：Arman Arisman 选题：lkxed 译者：ChatGPT 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

探索 Shell 脚本的威力
type: item
date: 2023-07-31T15:10:32+08:00
description: 本文章向你介绍了 Shell 脚本的基础知识以及其在日常生活中的重要性。当我们登录到一个 UNIX/Linux 系统时，我们首先注意到的是闪烁的光标和 $ 符号之间的空格。这就是 Shell（交互界面）。多年来，它一直是一种无处不在（有时甚至是唯一的）与计算机交互的界面。在图形用户界面（GUI）出现和流行之前，终端和 Shell 是唯一的机制，可以让计算机按照我们的意图进行操作。乍一看，我们可能会想知道 Shell 的作用，除了将命令传递给底层操作系统以进行执行之外。我们中的大多数人熟悉像 ls（用于列出目录内容），cd（用于更改当前目录）等命令。通过 Shell，我们可以执行这些命令。Shell 理解我们输入的文本 - 将其转换为标记 - 然后在操作系统上执行这些标记。不同的 Shell 变种最初，终端使用了朴素的 Bourne Shell（即 Sh）。多年来，许多不同的 Shell 变种被开发出来和使用。其中一些流行的包括 C Shell（Csh） 和 Korn Shell（Ksh）。Sh 在一段时间内不再受欢迎，但通过其最新的化身 —— Bourne Again Shell（Bash），它再次流行起来。Shell 实际上是做什么的？Shell 是操作系统（OS）和用户之间的直接接口。通过使用命令和应用程序来使用计算机上安装的工具，我们可以使计算机按照我们的意愿工作。一些命令是安装在操作系统上的应用程序，而某些命令则是直接内置在 Shell 中的。在 Bash 中内置的一些命令包括 clear、cd、eval 和 exec，还有 ls 和 mkdir 这样的应用程序。内置在 Shell 中的命令因 Shell 而异。在本文中，我们将涵盖与 Bash 相关的几个方面。更多关于 Shell 的内容我们中的大多数人都用过像 ls、cd 和 mkdir 这样的命令。当我们在一个目录上运行 ls -l 命令时，该目录中的所有子目录和文件都会在屏幕上列出。如果数量很大，屏幕会滚动。如果终端不支持滚动条（在很多年里都是如此），则无法查看已滚动过的条目。为了克服这个问题，我们使用像 more 和 less 这样的命令。它们允许我们逐页查看输出。通常使用的命令是：ls -l | less 在这里 Shell 是在做什么？看起来像是单个命令，实际上是 ls 和 less 两个命令依次执行。管道符（|）将这两个程序连接起来，但连接由 Shell 管理。由于有了管道符，Shell 连接了这两个程序——它将 ls 命令的标准输出连接到 less 的标准输入（stdin）。管道功能使我们能够将任何程序的输出作为另一个程序的输入提供，而无需对程序进行任何更改。这是许多 UNIX/Linux 应用程序的理念——保持应用程序简单，然后将许多应用程序组合在一起以实现最终结果，而不是让一个程序做很多事情。如果需要，我们可以将 ls 的输出重定向到文件中，然后使用 vi 查看它。为此，我们使用以下命令：ls -l > /tmp/my_file.txt vi /tmp/my_file.txt 在这种情况下，ls 的输出被重定向到一个文件中。这由 Shell 进行管理，它理解 > 符号表示重定向。它将其后面的标记视为文件。使用 Shell 自动化结合命令的能力是使用 Shell 命令创建自动化脚本的关键要素之一。在我最近的项目中，我们使用集群模式执行 Python/Spark（PySpark）应用程序。每个应用程序执行了许多结构化查询语言（SQL）语句 - SparkSQL。为了跟踪应用程序的进展，我们会打印有关正在执行的 SQL 的详细信息。这样可以让我们保留应用程序中正在发生的情况的日志。由于应用程序在集群模式下执行，要查看日志，我们必须使用以下 yarn 命令：yarn log –applicationId [application_id] 在大多数情况下，应用程序生成的日志非常大。因此，我们通常将日志导入到 less 中，或将其重定向到一个文件中。我们使用的命令是：yarn log –aplicationId [application_id] | less 我们的开发团队有 40 人。每个人都必须记住这个命令。为了简化操作，我将这个命令转换成了一个 Bash 脚本。为此，我创建了一个以 .sh 为扩展名的文件。在 UNIX 和 Linux 系统上，文件扩展名并不重要。只要文件是可执行的，它就能工作。扩展名在 MS Windows 上有意义。需要记住的重要事项Shell 是一个解释器。这意味着它会逐行读取程序并执行它。这种方法的限制在于错误（如果有）在事先无法被识别。直到解释器读取和执行它们时，错误才会被识别出来。简而言之，假如我们有一个在前 20 行完美执行…

硬核观察 #1078 FSF 指谷歌在 WEI 上的做法是“邪恶先锋”
type: item
date: 2023-07-31T00:43:00+08:00
description: FSF 指谷歌在 WEI 上的做法是“邪恶先锋”自由软件基金会（FSF）的 Greg Farough 批评谷歌提出的网络环境完整性（WEI）是对自由互联网的全面攻击。称该政策文件所强调的使用案例与其真正的使用案例相比，简直是小巫见大巫，因为其真正的使用案例是制定一种方法来完全彻底地限制互联网的自由。借助 WEI，政府将可以利用它来确保只有其官方 “批准”（读作：后门）的浏览器才能访问互联网；Netflix 等公司将利用它来推进数字限制管理（DRM）；谷歌将利用它来拒绝用户访问其服务，除非用户使用的浏览器符合其利润率。最初 WEI 还只是发布在 GitHub 上的一份无伤大雅的 政策文件，但谷歌现在已将其快速发展到 Chromium 浏览器中，WEI 将很快就会出现在我们面前。他说，“曾经有段时间谷歌的理念是‘不作恶’，它如此短时间内就在 WEI 上取得进展，我们可以非常肯定地说，他们现在的政策是要成为邪恶先锋。”消息来源：FSF老王点评：很多人没太理解 WEI 的危害，而这篇文章清晰的分析了其潜在的危害。但是，这种程度的社区抗议恐怕无济于事。谷歌比较忌惮的是其它企业和政府对它的反对。除了支持 Firefox 这类自由的浏览器之外，我们还可以寄希望于在其它的 Chromium 下游版本中去除 WEI。AlmaLinux 向红帽示好，被拒绝了红帽关闭 CentOS，推行 CentOS Stream 成为 RHEL 上游，其中一个理由是希望社区来参与 CentOS Stream/RHEL 的开发，并指责 AlmaLinux 等 RHEL 克隆品只是简单的重建，而没有做出任何贡献。而 AlamLinux 一方面表示将不再寻求 1:1 克隆，将在 RHEL 之外合并补丁，另外一方面“也尝试在 CentOS Stream 中测试和复制问题”，以示好红帽。最近，AlmaLinux 提交了一个 Iperf3 的 CVE 修复到 CentOS Stream。但红帽公司的一位高级软件工程师回复说：“感谢您的贡献。目前，我们不打算在 RHEL 中解决这个问题，不过我们会根据客户需求继续评估。”AlamLinux 不理解“只需合并即可，为什么还要拒绝修复呢？”之前曾经称 AlmaLinux 等“只是简单地重建代码”的红帽公司核心平台（又名 RHEL）副总裁 Mike McGrath 对 AlmaLinux 表示了感谢，但拒绝了这些代码。事后，McGrath 承认错失了对 AlmaLinux 表达善意的机会，并提升了该 CVE 的等级，合并了这些代码。消息来源：ZDNet老王点评：只是说说而已，谁让你真提交代码了，没事就给添乱，你知道你提交了代码，红帽要做作多少回归测试吗。Python 接受可选全局解释器锁提案Python 指导委员会宣布，它计划接受 PEP 703，让全局解释器锁成为可选，即 No-GIL 模式。预计将在 Python 3.13 初步支持该模式。CPython 的全局解释器锁（GIL）阻止了同时多线程执行代码，成为了在多核 CPU 上提高 Python 代码运行效率的一大障碍。Meta 公司承诺为 PEP 703 提案提供 人力支持。Python 指导委员会强调了兼容性的重要性，要避免出现类似 Python 3 的情况，称它不是 Python 4。消息来源：Python 基金会老王点评：不是 Python 4，胜似 Python 4，这一改进对将 Python 应用到重要领域很有意义。

Bash 基础知识系列 #6：处理字符串操作
type: item
date: 2023-07-30T17:00:53+08:00
description: 在大多数编程语言中，你都会找到字符串数据类型。字符串基本上是一组字符。但 Bash Shell 有所不同。字符串没有单独的数据类型。这里一切都是变量。但这并不意味着你不能像在 C 和其他编程语言中那样处理字符串。在 Bash Shell 中可以查找子字符串、替换子字符串、连接字符串以及更多字符串操作。在 Bash 基础知识系列的这一部分中，你将学习基本的字符串操作。在 Bash 中获取字符串长度让我们从最简单的选项开始。也就是获取字符串的长度。这很简单：${#string} 让我们在示例中使用它。正如你所看到的，第二个示例中有两个单词，但由于它用引号引起来，因此它被视为单个单词。连空格都算作一个字符。在 Bash 中连接字符串用技术术语来说是字符串 连接 concatenation ，这是 Bash 中最简单的字符串操作之一。你只需像这样一个接一个地使用字符串变量：str3=$str1$str2 还能比这更简单吗？我觉得不能。让我们看一个例子。这是我的示例脚本，名为 join.sh：#!/bin/bash read -p "Enter first string: " str1 read -p "Enter second string: " str2 joined=$str1$str2 echo "The joined string is: $joined" 以下是该脚本的运行示例：在 Bash 中提取子字符串假设你有一个包含多个字符的大字符串，并且你想要提取其中的一部分。要提取子字符串，需要指定主字符串、子字符串的起始位置和子字符串的长度，如下所示：${string:$pos:$len} ? 和数组一样，字符串中的定位也是从 0 开始。这是一个例子：即使你指定的子字符串长度大于字符串长度，它也只会到达字符串末尾。替换 Bash 中的子字符串假设你有一个大字符串，并且你想用另一个字符串替换其中的一部分。在这种情况下，你可以使用这种语法：${string/substr1/substr2} ✋ 只有第一次出现的子字符串才会以这种方式替换。如果要替换所有出现的地方，请使用 ${string//substr1/substr2}这是一个例子：正如你在上面看到的，“good” 一词被替换为 “best”。我将替换的字符串保存到同一字符串中以更改原始字符串。? 如果未找到子字符串，则不会替换任何内容。它不会导致错误。在 Bash 中删除子字符串我们来谈谈删除子字符串。假设你要删除字符串的一部分。在这种情况下，只需将子字符串提供给主字符串，如下所示：${string/substring} ✋ 通过这种方式，仅删除第一次出现的子字符串。如果要删除所有出现的内容，请使用 ${string//substr}如果找到子字符串，则将从字符串中删除它。让我们通过一个例子来看看。不用说，如果没有找到子字符串，则不会删除它。它不会导致错误。?️ 练习时间现在是你通过简单练习来实践字符串操作的时候了。练习 1：声明一个字符串 “I am all wet”。现在通过用 “set” 替换单词 “wet” 来更改此字符串。练习 2：创建一个字符串，以 112-123-1234 格式保存电话号码。现在，你必须删除所有 -。这应该会给你一些在 Bash 中使用字符串的不错的练习。在下一章中，你将学习如何在 Bash 中使用 if-else 语句。敬请关注。（题图：MJ/aa73b2c9-6d2f-42e2-972d-94fab56d30cc）via: https://itsfoss.com/bash-strings/作者：Abhishek Prakash 选题：lkxed 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

使用开源工具来举办线上大会
type: item
date: 2023-07-30T15:38:00+08:00
description: 下面是使用开源工具来举办一场线上活动的方法。在 2023 年 1 月举办了首届 创意自由峰会 Creative Freedom Summit 后，Fedora 设计团队 发现使用开源工具来举办线上大会非常有效。在本文中，我将分享一些关于这场大会的背景信息，为什么对我们来说使用开源工具来举办大会很重要，以及为实现这一目标我们的团队所使用的具体工具和配置。我还会谈谈哪些工作做的很好，在以及我们 2024 年下一届峰会中需要改进的地方。创意自由峰会创意自由峰会是 Marie Nordin 在审查了 Fedora 用户与贡献者年度大会（Flock） 的演讲提交后提出的一个想法。在 2022 年 8 月的 Flock 大会上，她收到了大量与开源设计和创意相关的演讲提交，远远超出我们能够接受的数量。由于存在许多关于开源设计的优秀想法，她想知道是否有机会举办一个独立的开源创意大会，专门面向在创作中使用开源工具的创意人士。Marie 在 2022 年秋季向 Fedora 设计团队提出了这个想法，我们开始筹划这个会议，会议于 2023 年 1 月 17 日至 19 日举行。由于这是我们第一次举办这样一场新的会议，我们决定首先基于 Flock 提交的演讲和我们自己的开源创意人士网络，邀请其中一些人士担任演讲嘉宾。几乎每位我们邀请的演讲者都答应演讲，所以我们没有接受其他人的提交。明年我们需要找到更好的解决办法，所以目前我们还没有开源的投稿管理工具可供介绍。在开源大会中使用开源工具自从最初的大流行封锁以来，Fedora 的 Flock 大会一直使用 Hopin 虚拟平台在线举办，尽管 Hopin 不是开源的，但对开源工具很友好。Fedora 几年前开始使用 Hopin，它确实提供了专业的会议体验，包括内置的赞助商展位/博览厅、分会场、大厅聊天对话和管理工具。通过 Hopin 来举办创意自由峰会对我们来说可行，因为作为 Fedora 赞助的活动，我们可以使用 Fedora 的 Hopin 环境。再次强调，Hopin 不是开源的。作为一个长期（约 20 年）的开源贡献者，我可以告诉你，做出这样的决定总是很困难的。如果你的大会专注于开源，使用专有平台来举办你的活动可能会有些奇怪。然而，随着我们社区和活动的规模和复杂性不断增长，开发一个集成的开源会议系统变得更具挑战性。并不存在正确或错误的答案。在做出这个决定时，你必须权衡很多因素：预算人力资源基础设施技术能力活动的复杂性/正式性/文化我们没有为这次活动安排任何预算。我们有一支志愿者团队可以投入一些工作时间。我们有 Fedora Matrix 服务器作为可以加入的支持基础设施，并且有一个托管的 WordPress 系统用于网站。我和队友 Madeline Peck 在举办每周的 Fedora 设计团队的 视频会议 方面具有一定的技术能力和经验。我们希望这次活动是低调、单一会场和非正式的，所以对于一些小故障或瑕疵我们有一定的容忍度。我们对尝试使用开源工具组合也有很大的热情。现在你了解了我们在做出这个决定时的一些考虑因素，这可能有助于你在为自己的活动做决策时参考。一个开源会议技术栈以下是会议技术栈的工作方式。概述直播组件：直播流: 我们通过 PeerTube 频道将主舞台和社交活动进行实时直播。会议参与者可以从我们的 PeerTube 频道观看直播。PeerTube 提供了一些注重隐私的分析功能，可以跟踪直播观众和活动后观看次数。直播舞台 + 社交活动房间: 我们设有一个用于演讲者和主持人的直播舞台，使用 Jitsi 确保只有有权限的人可以上镜。我们额外设有一个 Jitsi 会议室，用于社交活动，允许任何希望参与社交活动的人上镜。后台: 我们有一个名为“后台”的 Matrix 频道，用于在活动期间与演讲者、主持人和志愿者协调工作。公告和问答: 我们通过共享的 Etherpad（后来转移到 Hackmd.io）来管理问答和每日议程。集成和集中化的会议体验: 使用 Matrix 的 Element 客户端，我们将直播视频和 Etherpad 嵌入到一个公共的 Matrix 频道中，供会议使用。我们根据频道中的参与人数来监控整体会议出席情况。我们在整个会议期间设有实时聊天，并从聊天和嵌入的用于问答的 Etherpad 中接受观众提问。会议网站: 我们有一个由 Ryan Gorley 设计精美的网站，托管在 WordPress 上，网站提供了基本信息和链接，包括如何参加会议、日期/时间和议程。活动后组件：活动后调查: 我们使用开源的 LimeSurvey 系统向参会者发送了一份活动后的调查，以了解他们的参会体验。我在这篇文章中使用了该调查的一些数据。活动后的视频编辑和字幕: 我们的会议没有实时字幕系统，但在我能做到的情况…

硬核观察 #1077 科学海盗湾 Sci-Hub 创始人获 EFF 年度大奖
type: item
date: 2023-07-29T18:03:16+08:00
description: 科学海盗湾 Sci-Hub 创始人获 EFF 年度大奖电子前沿基金会（EFF）将 2023 年度大奖授予了 Sci-Hub 的创始人 Alexandra Elbakyan。Sci-Hub 是她在 2011 年还是一名大学生时创办的，为所有科学知识提供免费不受限制的访问。它在今天发展成为一个包含逾 8830 万篇论文和书籍的数据库，任何人都可以下载和阅读。EFF 称，Sci-Hub 是数百万学生和研究人员的重要资源。一些医学专家甚至认为，该网站有助于挽救生命。Sci-Hub 打破了期刊出版业的垄断机制，因而她成为了众多诉讼和政府行动的目标，但她仍然坚持其信念而不动摇。本次获奖者还有 图书馆自由项目 Library Freedom Project 和 Signal 基金会。Linux 之父 Linus Torvalds 之前也获得过该奖项。消息来源：EFF老王点评：无需多说，就一个字，?昨天是系统管理员日昨天（7 月 28 日）是 “ 系统管理员日 System Administrator Appreciation Day ”，其组织者表示，全世界都应该借此机会 “向那些风雨无阻地预防灾难、保护 IT 安全和扑灭技术火灾的英雄们致敬”。该活动由系统管理员 Ted Kekatos 于 1999 年创立，每年 7 月的最后一个星期五都会举行庆祝活动，以表彰和感谢这些兢兢业业，但往往不被重视的 IT 专业人员所做出的贡献。消息来源：The Register老王点评：国内了解并庆祝该日子的系统管理员们非常少，连我这样一个老系统管理员都是第一次知道。国内往往会庆祝另外一个日子 —— 代表 7X24 运维的 7.24。美国立法禁止汽车制造商在新车中取消调幅广播今年至少有七家汽车制造商在其电动汽车中 取消 了调幅广播，其中包括福特、特斯拉、宝马和大众。迫于压力，福特在今年 5 月改变了取消的做法。美国参议院商业委员会周四批准了一项立法，禁止汽车制造商在新车中取消调幅广播。立法者称，失去调幅广播会破坏向公众提供关键公共安全信息的联邦系统。消息来源：路透社老王点评：虽然调幅广播是很老的技术了，但是它仍然有不可取代的优势。你有多久没有收听过调幅广播了？

专为技术写作人员提供的 7 条 Git 技巧
type: item
date: 2023-07-29T16:21:20+08:00
description: 跟随这个演示来了解我如何使用 Git 为 Foreman 编写文档。作为 ATIX 的技术作家，我的任务包括为 Foreman 创建和维护存放在 github.com/theforeman/foreman-documentation 的文档。Git 帮助我跟踪内容的版本，并与开源社区进行协作。它是我存储工作成果、共享和讨论改进的重要工具。我主要使用的工具包括浏览器、用 OpenSSH 连接 Foreman 实例、用 Vim 编辑源文件，以及使用 Git 进行版本控制。本文重点介绍在开始使用 Git 和为 Foreman 文档做贡献时经常遇到的挑战。适用于中级 Git 用户。先决条件你已在系统上安装和配置了 Git。你至少需要设置用户名和电子邮件地址。你在 github.com 上拥有一个帐户。GitHub 本身并不是一个开源项目，但它是许多开源 Git 存储库的托管站点（包括 Foreman 的文档）。你已将 foreman-documentation 存储库复刻到你自己的账户或组织（例如，github.com/<My_User_Account>/foreman-documentation，这里 <My_User_Account> 是你的 GitHub 用户名）。有关更多信息，请参阅 Kedar Vijay Kulkarni 的 Kedar Vijay Kulkarni 的 Git 逐步指南。你已将你的 SSH 公钥添加到 GitHub。这是将你的更改推送到 GitHub 所必需的。有关更多信息，请参阅 Nicole C. Baratta 的《GitHub 简单指引》。对 Foreman 文档做出贡献Foreman 是一个开源项目，依靠社区的贡献而发展壮大。该项目欢迎所有人的参与，并且只有一些要求才能做出有意义的贡献。这些要求和惯例在 README.md 和 CONTRIBUTING.md 文件中有详细记录。以下是在处理 Foreman 文档时最常见的一些任务。我想开始贡献 Foreman 文档1、从 github.com 克隆存储库：$ git clone git@github.com:theforeman/foreman-documentation.git $ cd foreman-documentation/ 2、重命名远程存储库：$ git remote rename origin upstream 3、可选：确保你的本地主分支跟踪 theforeman 组织的 foreman-documentation 存储库的 master 分支：$ git status 这将自动将你置于默认分支（本例中为 master）的最新提交上。4、如果你的账户或组织中尚未有该存储库的 复刻 Fork ，请创建一个。前往 github.com/theforeman/foreman-documentation 并点击 “ 复刻 Fork ” 按钮。5、将你的复刻添加到你的存储库中：$ git remote add github git@github.com:<My_User_Account>/foreman-documentation.git 你的本地存储库现在有两个远程存储库：upstream 和 github。我想扩展 Foreman 文档对于简单的更改，比如修正拼写错误，你可以直接创建一个拉取请求（PR）。1、创建一个分支，例如 fix_spelling。git switch 命令用于切换当前所在的分支，-c 参数用于创建分支：$ git switch -c fix_spelling 2、进行你的更改。3、添加你的更改并进行提交：$ git add guides/common/modules/abc.adoc $ git commit -m "Fix spelling of existing" 良好的 Git 提交消息的重要性无需再强调。提交消息告诉贡献者你做了哪些工作，因为它与代码库的其余部分一起保存，所以它在查看代码时起到历史注释的作用，帮助了解代码的演化过程。有关优秀的 Git 提交消息的更多信息，请参阅由 cbeams 撰写的 《创建完美的 Git 提交信息的 7 条规则》。4、可选但建议的操作：查看并验证与默认分支的差异。foreman-documentation 的默认分支称为 master，但其他项目可能有不同的命名（例如 main、dev 或 devel）。$ git diff master 5、将分支推送到 GitHub。这将发布你的更改到你的代码库副本：$ git push --set-upstream github fix_spelling 6、点击终端中 Git 提供的链接来创建一个拉取请求（PR）：remote…

如何在 Kubernetes 集群中设置动态 NFS 配置
type: item
date: 2023-07-29T06:29:00+08:00
description: 在这篇文章中，我们将向你展示如何在 Kubernetes（k8s）集群中设置动态 NFS 配置。Kubernetes 中的动态 NFS 存储配置允许你按需自动为 Kubernetes 应用配置和管理 NFS（网络文件系统）卷。它允许创建持久卷（PV）和持久卷声明（PVC），而无需手动干预或预配置存储。NFS 配置程序负责动态创建 PV 并将其绑定到 PVC。它与 NFS 服务器交互，为每个 PVC 创建目录或卷。先决条件预装 Kubernetes 集群具有 Kubernetes 集群管理员权限的普通用户互联网连接事不宜迟，让我们深入探讨步骤：步骤 1、准备 NFS 服务器就我而言，我将在 Kubernetes 主节点（Ubuntu 22.04）上安装 NFS 服务器。登录主节点并运行以下命令：$ sudo apt update $ sudo apt install nfs-kernel-server -y 创建以下文件夹并使用 NFS 共享它：$ sudo mkdir /opt/dynamic-storage $ sudo chown -R nobody:nogroup /opt/dynamic-storage $ sudo chmod 777 /opt/dynamic-storage 在 /etc/exports 文件中添加以下条目：$ sudo vi /etc/exports /opt/dynamic-storage 192.168.1.0/24(rw,sync,no_subtree_check) 保存并关闭文件。注意：不要忘记更改导出文件中适合你的部署的网络。要使上述更改生效，请运行：$ sudo exportfs -a $ sudo systemctl restart nfs-kernel-server $ sudo systemctl status nfs-kernel-server 在工作节点上，使用以下 apt 命令安装 nfs-common 包。$ sudo apt install nfs-common -y 步骤 2、安装和配置 NFS 客户端配置程序NFS 子目录外部配置程序在 Kubernetes 集群中部署 NFS 客户端配置程序。配置程序负责动态创建和管理由 NFS 存储支持的持久卷（PV）和持久卷声明（PVC）。因此，要安装 NFS 子目录外部配置程序，首先使用以下命令集安装 helm：$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh 运行以下命令来启用 helm 仓库：$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner 使用以下 helm 命令部署配置程序：$ helm install -n nfs-provisioning --create-namespace nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --set nfs.server=192.168.1.139 --set nfs.path=/opt/dynamic-storage 上面的 helm 命令将自动创建 nfs-provisioning 命名空间，并安装 NFS 配置程序的容器荚/部署、名称为 nfs-client 的存储类，并将创建所需的 rbac。$ kubectl get all -n nfs-provisioning $ kubectl get sc -n nfs-provisioning 完美，上面的输出确认了配置程序容器荚和存储类已成功创建。步骤 3、创建持久卷声明（PVC）让我们创建 PVC 来为你的容器荚或部署请求存储。PVC 将从存储类 nfs-client 请求特定数量的存储：$ vi demo-pvc.yml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: demo-claim namespace: nfs-provisioning spec: storageClassName: nfs-client accessModes: - ReadWriteMany resources: requests: st…