如何在 RHEL 8 上安装 MiniKube

![](/data/attachment/album/202303/15/232024hn8312yg1qmy7mhv.jpg)

>
> 在这篇文章中，我们将逐步介绍如何在 RHEL 8、Rocky Linux 8 或 AlmaLinux 8 上安装 MiniKube。
>
>
>

MiniKube 是一个跨平台的开源工具，可以让你在本地机器上部署单节点 Kubernetes 集群。

Kubernetes，也被称为 k8s，或简称 Kube，是一个开源的容器编排平台，用于容器的自动化扩展和部署。MiniKube 集群帮助开发人员和管理员在集群中构建他们的测试环境。

##### MiniKube 的先决条件

* 最小化安装的 RHEL 8 或 Rocky Linux 8 或 AlmaLinux 8
* 本地配置的 RHEL 8 仓库或订阅
* 至少 2GB RAM 和 2 个 vCPU
* 20GB 硬盘空间
* 具有管理员身份的 sudo 用户
* 稳定的互联网连接
* Docker 或虚拟机管理器，如 VirtualBox、KVM 和 VMware 等

在这篇文章中，我们将使用 Docker 作为 MiniKube 的驱动程序。满足所有先决条件后，现在是时候卷起袖子动手了。

### 步骤 1）启用官方 Docker 仓库

要启用 Docker 官方仓库，运行：

```
$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf repolist

```

![](/data/attachment/album/202303/15/232419vx2ll5i8x0tzsz0z.jpg)

### 步骤 2）安装 Docker CE（社区版）

运行以下 `dnf` 命令来安装 Docker 及其依赖项：

```
$ sudo dnf install docker-ce docker-ce-cli containerd.io -y

```

输出：

![](/data/attachment/album/202303/15/232430xmxvyml7ry3rahhr.jpg)

安装 Docker 后启动并启用它的服务，运行以下 `systemctl` 命令：

```
$ sudo systemctl start docker
$ sudo systemctl start docker

```

允许你的本地用户在没有 `sudo` 的情况下运行 `docker` 命令，运行：

```
$ sudo usermod -aG docker $USER
$ newgrp docker

```

### 步骤 3）安装 kubectl 二进制文件

`kubectl` 是一个命令行工具，它通过 API 与 Kubernetes 集群进行交互。我们使用 `kubectl` 部署应用。默认情况下，`kubectl` 不包含在 RHEL 8 、Rocky Linux 8 或 AlmaLinux 8 软件包仓库中。因此，我们将使用下面的命令手动安装它：

```
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ sudo cp kubectl /usr/local/bin/ && sudo chmod +x /usr/local/bin/kubectl
$ kubectl version --client

```

以上命令的输出如下所示：

![](/data/attachment/album/202303/15/232447ea862rhda129289s.jpg)

### 步骤 4）下载 MiniKube 二进制文件并启动集群

安装 `kubectl` 后，让我们使用以下命令下载并安装 MiniKube 二进制文件：

```
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

```

现在使用下面的命令启动 MiniKube 集群：

```
$ minikube start --driver docker

```

![](/data/attachment/album/202303/15/232457sc1x1ec2h7uxx21s.jpg)

上面的输出确认 `minikube` 命令已经使用 `docker` 作为驱动程序启动了单节点 Kubernetes 集群。

运行下面的 `minikube` 命令来验证本地 Kubernetes 集群的状态：

```
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
$
$ minikube ip
192.168.49.2
$

```

要停止 MiniKube 集群，请执行：

```
$ minikube stop

```

执行 `kubectl` 命令查看集群和节点信息：

```
$ kubectl cluster-info
$ kubectl get nodes

```

![](/data/attachment/album/202303/15/232510gqn80cn1tzn0cqd8.jpg)

### 步骤 5）测试和验证 Kubernetes 集群

为了测试 Kubernetes 集群，让我们尝试使用 echo 服务器镜像创建 k8s 部署，它相当于 HTTP Web 服务器并将其作为服务暴露在端口 8080 上：

```
$ kubectl create deployment test-minikube --image=k8s.gcr.io/echoserver:1.10
deployment.apps/test-minikube created
$

```

要访问 `test-minikube` 部署，将其公开为服务，运行以下命令：

```
$ kubectl expose deployment test-minikube --type=NodePort --port=8080
service/test-minikube exposed
$

```

运行以下 `kubectl` 命令以获取上面创建的部署、<ruby> 容器荚 <rt>  pod </rt></ruby> 和服务信息：

```
$ kubectl get deployment,pods,svc

```

![](/data/attachment/album/202303/15/232522uajvjj1d99i9iz40.jpg)

要访问服务，请通过运行下面的命令获取其 URL：

```
$ minikube service test-minikube --url
http://192.168.49.2:32291
$
$ curl http://192.168.49.2:32291/

```

![](/data/attachment/album/202303/15/232538eyydhncl9d2dlzow.jpg)

太好了，这意味着我们的 Kubernetes 集群工作正常，因为我们能够访问我们的示例应用。

##### 步骤 6）启用 MiniKube 插件

MiniKube 提供插件，可以为我们的集群添加额外的功能。要列出所有可用的插件，运行：

```
$ minikube addons list

```

![](/data/attachment/album/202303/15/232548p7vehvrn0nbrr1cq.jpg)

Kubernetes 附带一个仪表板，可让你管理集群。在 MiniKube 中，仪表板已作为插件添加。所以要启用它，运行：

```
$ minikube addons enable dashboard

```

还要启用 nginx 入口控制器，运行：

```
$ minikube addons enable ingress

```

![](/data/attachment/album/202303/15/232557nkekrbbi91pdqffb.jpg)

要访问仪表板，运行：

```
$ minikube dashbaord --url

```

这将在你系统的浏览器中启动仪表板。

![](/data/attachment/album/202303/15/232038x2a3y94vmmm4j82m.png)

就是这些了。我们已经成功地在 RHEL 8、Rocky Linux 8 或 AlmaLinux 8 上使用 MiniKube 安装了 Kubernetes。欢迎你在下面的评论部分分享你的反馈和意见。

---

via: <https://www.linuxtechi.com/install-minikube-on-rhel-rockylinux-almalinux/>

作者：[Pradeep Kumar](https://www.linuxtechi.com/author/pradeep/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


世界上只有两个 Linux 发行版：Arch Linux 与其它

debian yyds,因为我用的kali,parrotsec 都是debian的,我熟悉他

debian yyds,因为我用的linuxmint，popos 都是debian系的,我熟悉他

archlinux,gentoo,ubuntu,centos都用过，还是习惯用debian

ArchLinux yyds 因为AUR实在是太强大了，而且还可以自己动手移植~

手上的老款ThinkPad，安装了Arch Linux，重获新生。现在它们照样做主力，跑起最新版release的内核，运行顺畅

我在使用ubuntu因为我第一个上手的Linux就是ubuntu

Fedora yyds,因为我用的openSUSE,rpm 都是Fedora的,我熟悉他

用arch可以去群里问依云小姐姐问题，巴适得很

Opensuse yyds，我也不知道我为什么yyds

手上的老款ThinkPad，用Void Linux，无他，选择比较多。用了9年arch，腻了。

自己在用Arch，我个人是非常喜欢Arch的，可以说Arch是我梦开始的地方。从大四的时候对着虚拟机一遍又一遍地敲着官网教程上的命令来安装Arch，到现在博士阶段日常工作和生活根本就离不开它。Arch也算是见证了我的成长了吧。

来自黑龙江哈尔滨哈尔滨工业大学的 Firefox 109.0|GNU/Linux 用户

openSUSE yyds 因为Yast实在是太强大了，而且还可以自己动手移植~

archlinux 更新后不能启动---这种几率很大

Debian yyds 因为lesbian就是要用Debian

linuxmint

各有各的优点，我直接用manjaro

一直在用Ubuntu，没有任何不方便。很好！

来自加拿大的 Chrome Mobile 111.0|Android 13 用户

用过ubuntu、debian、centos、fedora、opensuse还有其他杂七杂八的衍生版，最省心的只有ubuntu

我告诉你们，我是身经百战，见得多了！西方哪个操作系统我没用过？<br />
最后我停留在了arch

我完全没有这种情况，也许你该多了解一些grub什么的相关知识，还有你可以试试dracut

Fedora Silverblue Rawhide，最好没有之一！

Fedora Silverblue Rawhide，最好没有之一！

![](/data/attachment/album/202303/16/091648yt6xxdjnc5tttn1z.jpg)

>
> 如果你打算把 Arch Linux 作为日常用机，你应该考虑一下 Arch Linux 与其他发行版的不同优点。下面是一个快速比较。
>
>
>

（经提醒，标注原文标题：**Arch Linux 与其他 Linux 发行版，哪个更适合你？**）

如果你考虑改用 Linux，你会接触到数百个 Linux 发行版。每个 Linux 发行版都有其独特的功能、优势和劣势。

它们为用户提供了独特的功能、工具和界面的选择，以满足不同的需求。如果你想和 Arch Linux 进行比较，选择合适的 Linux 发行版，这可能会让人不知所措。

在这篇文章中，我将重点介绍 Arch Linux，它是最受欢迎的 Linux 发行版之一，并将它与其他流行的 Linux 发行版进行比较。

### 关于 Arch Linux 的一些说明

Arch Linux 是一个轻量级和高度可定制的 Linux 发行版，最初发布于 2002 年。与其他流行的发行版不同，Arch Linux 是一个简约的发行版，采用自己动手（DIY）的方式。它是为中高级 Linux 用户设计的，他们喜欢控制和灵活性而不是易用性。

Arch Linux 遵循滚动发布模式，这意味着你可以经常用最新的软件包更新你的系统。

#### Arch Linux 的优点

Arch Linux 有很多优点。然而，一个发行版到底好不好取决于你的使用情况或品味。这因人而异。但在我看来，Arch Linux 比其他 Linux 发行版有几个优势，比如：

* 轻量级和快速（原装版的 Arch，尤其是带有 Xfce 桌面的）
* 灵活性和定制化
* 最新的软件包
* 可靠和稳定（如果正确使用和维护的话）
* 通过 <ruby> Arch 用户仓库 <rt>  Arch User Repository </rt></ruby>（AUR）收集最广泛的软件包
* 通过测试软件仓库和安装提供开发包

现在，让我们简单了解一下主要和流行的 Linux 发行版。

### 其他主要发行版的简要概述

#### Ubuntu

Ubuntu 由 Canonical 创建，它是最受欢迎的 Linux 发行版之一，为所有用户和各种使用情况而设计。你可以将 Ubuntu 用于日常工作、开发环境、休闲浏览等方面。它以 Debian 为基础，提供了一个用户友好的 GNOME 桌面环境界面和优秀的软件管理工具。Ubuntu 每年发布两个版本，每两年有一个长期版本。

#### Fedora

Fedora 由 Red Hat 开发和资助，它是另一个流行的 Linux 发行版。它是为中高级用户构建的。它提供最新的软件包，并具有最先进的桌面环境。许多用户喜欢 Fedora，因为它在采用现代技术时总是走在最前面。例如，Wayland 显示服务器，Piperwire 声音服务器，内存超出处理，以及许多其他技术都是由 Fedora 首先采用的。而 Ubuntu 紧随其后。

#### Debian

被称为 “通用操作系统” 的 Debian Linux 已经有二十多年的历史。它稳定、可靠，具有大量的软件包。Debian 以支持所有计算机架构而闻名。Debian 的 “稳定” 版本被认为是当今最稳定的 Linux 发行版。虽然，它的发布节奏比这个名单中的其他版本要慢一些。

#### CentOS

CentOS 以其稳定性、安全性和可靠性而闻名，被广泛用于企业环境中的服务器部署和管理。CentOS 基于红帽 Linux 企业版（RHEL），它为运行 Web 服务器、数据库和关键应用程序提供了一个强大和可扩展的平台。它提供的长期支持和频繁的更新使它在开发者、系统管理员和企业中很受欢迎。

### Arch Linux 与其他 Linux 发行版的比较

现在你对一些流行的 Linux 发行版有了一些了解，让我们把 Arch Linux 与其他 Linux 发行版进行比较。

#### 安装过程

多年来，与其他发行版相比，Arch Linux 的安装有一定的难度，因为它需要手动安装和配置。然而，Arch Linux 的安装过程为用户提供了更大的控制和定制选项。

但最近，Arch Linux 团队通过 [archinstall](https://www.debugpoint.com/archinstall-guide/) 脚本推出了一个菜单驱动的、易于操作的安装程序。利用它并掌握一些基本知识，现在可以直接安装 Arch Linux 了。此外，Arch Linux 还提供了 [虚拟机和 Docker 镜像](https://archlinux.org/download/)，这对加快 Arch Linux 的部署非常有用。

![archinstall 的最终分区表](/data/attachment/album/202303/16/091725gci847qerc0srraq.jpg)

另一方面，Ubuntu、Linux Mint 和 Fedora 等发行版有图形化的安装向导，更容易使用，适合初学者。

#### 软件包管理器

Arch Linux 的默认软件包管理器是 [Pacman](https://www.debugpoint.com/pacman-command-arch-examples/)，它以其速度和可靠性著称。它还具有 [Arch 用户仓库（AUR）](https://www.debugpoint.com/aur-arch-linux/)，这是一个由社区驱动的用户贡献的庞大的软件仓库。

相比之下，其他发行版，如 Ubuntu 和 Debian 使用 APT（<ruby> 高级软件包工具 <rt>  Advanced Package Tool </rt></ruby>），而 Fedora 使用 DNF，它也是可靠和快速的。

但根据我的经验，如果你仔细选择镜像，Pacman 要比 APT 和 DNF 软件包管理器快。

#### 滚动发布与定期发布比较

Arch Linux 与其他发行版的一个重要区别是其滚动发布模式。Arch Linux 提供了持续的更新，因此用户可以随时获取最新的软件包。相比之下，像 Ubuntu 和 Fedora 这样的发行版通过他们的标准发布计划来提供，需要一些时间。

Fedora 每 6 个月左右就会有定期发布的版本。Ubuntu 每年也有两个版本。虽然定期发布的版本提供了稳定性，但它们可能没有最新的软件包可用。

所以，这要归结为你自己的需要和工作流程。

#### 自定义和控制

Arch Linux 是为希望完全控制和定制自己的系统的用户设计的。原装的 Arch Linux 安装只安装基本的软件包，用户可以根据自己的需要添加其他软件。

根据你的使用情况，你可以选择安装你喜欢的浏览器、文本编辑器、媒体播放器、图像编辑器等等。没有什么是强加给你的。

其他发行版，如 Ubuntu 和 Fedora 提供了更多的预装软件包，使它们对初学者来说更容易使用。然而，它们可能没有提供像 Arch Linux 那样多的控制和定制功能。

但是，提供预装软件使许多用户、学校、学生和想要一个有预建项目的系统的老年人更轻松。

#### 稳定性和安全性

Arch Linux 以其稳定性和安全性而闻名，这主要是由于它对软件包的安装采取了简约的方法。用户可以完全控制他们安装的软件包，这使得它不容易受到安全漏洞的影响。

此外，Linux 主线内核（主要和次要版本）每月都会在 Arch 软件仓库中率先发布。因此，总的来说，你可以放心，如果你保持你的 Arch Linux 定期更新，你几乎是安全的。

其他发行版，如 Debian 和 CentOS 也以其稳定性和安全性而闻名，但它们可能没有 Arch Linux 那样最新的软件包。

### 哪个 Linux 发行版适合你？

选择合适的 Linux 发行版取决于你的需求和专业水平。

如果你是一个有经验的 Linux 用户，想要完全控制和定制，Arch Linux 是一个很好的选择。如果你知道处理错误的基本方法，在错误升级的情况下可以绕过系统故障，那么它就是最好的选择。

然而，如果你是一个 [初学者](https://www.debugpoint.com/linux-distro-beginners/) 或者喜欢开箱即用的体验，Ubuntu、Linux Mint 或 Fedora 等发行版可能更好。

### 结论

选择合适的 Linux 发行版是一种挑战，但了解它们的差异可以帮助你做出明智的决定。

Arch Linux 是一个独特而强大的发行版，提供完全的控制和定制，但它可能并不适合所有人。

像 Ubuntu 和 Fedora 这样的流行发行版提供了易用性和更多的预装软件包，使它们成为初学者的绝佳选择。

最后，我希望这份指南能给你一个关于 Arch Linux 与其他发行版相比的基本指导。

加油。

---

via: <https://www.debugpoint.com/arch-linux-vs-other-distros/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #942 Docker Hub 将删除所有没有付钱的开源组织的镜像

Summary:
? Docker Hub 将删除所有没有付钱的开源组织的镜像
? AI 棋手刺激人类棋手进步
? 勒索软件攻击已进入一个令人发指的新阶段
»
»

![](/data/attachment/album/202303/16/182437qo3orsgmsgr0qg0x.jpg)

![](/data/attachment/album/202303/16/182446f7hhhjvuhhhlq1zt.jpg)

### Docker Hub 将删除所有没有付钱的开源组织的镜像

Docker 要求以“组织”名义开设账号的用户升级到付费的团队方案，每年 420 美元，否则其账号将被删除，其名下的 Docker 镜像也将被删除。Docker Hub 被很多开源项目用于发布镜像，许多项目依赖于这些免费的镜像，如果这些镜像被删除，意味这些免费用户的系统会崩溃。Docker 的 CTO 甚至说他们“将关闭那些不交钱的账户，并且不允许其他人接管这个名字”。此举引发了巨大争议，很多人开始将其镜像迁移出 Docker 转到其它平台或自行托管。

>
> **[消息来源：Alex Ellis](https://blog.alexellis.io/docker-is-deleting-open-source-images/)**
>
>
>

>
> 老王点评：Docker 公司越来越背离开源，这不但解决不了其商业发展问题，而且是自绝其路。
>
>
>

![](/data/attachment/album/202303/16/182456rmcxqetyyzycu2a9.jpg)

### AI 棋手刺激人类棋手进步

根据一项研究，在 DeepMind 的 AlphaGo 击败最强大的人类棋手之后，人类棋手通过与 AI 棋手对弈而取得了显著进步。研究人员使用了一种被称为“决策质量指数”（DQI）的指标，该指标用于评估一步棋的质量，如果没有尝试与之前的动作相结合，即认为一个动作是“新颖的”。分析发现，1950 年至 2015 年间，围棋水平的改善相对较小，年度 DQI 中值在 -0.2 至 0.2 之间波动。而在 2016 年后，DQI 跃升，2018 年至 2021 年间的中值超过 0.7。

>
> **[消息来源：《科学美国人》](https://www.scientificamerican.com/article/ais-victories-in-go-inspire-better-human-game-playing/)**
>
>
>

>
> 老王点评：这样看起来，在 AI 这条鲶鱼的威胁下，人类可能会被激发新潜力。
>
>
>

![](/data/attachment/album/202303/16/182509bz2hf7gwfr227m2p.jpg)

### 勒索软件攻击已进入一个令人发指的新阶段

今年 2 月，BlackCat 勒索团伙攻击了美国宾州的一个医生诊所，这次攻击涉及一个与放射肿瘤学治疗有关的病人照片系统。在被拒绝支付赎金后，勒索团伙威胁发布了三张癌症患者接受放疗的截图和七份包括患者信息的文件。还有一个例子是，另外一个勒索团伙公布了从一所学校窃取的样本数据，泄露的截图包括手写笔记的扫描件，其中描述了对侵犯的指控，以及参与该事件的男女学生的名字。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2023/03/ransomware-attacks-have-entered-a-heinous-new-phase/)**
>
>
>

>
> 老王点评：作恶的人，没有底线并不值得惊讶。
>
>
>


不编写代码也可以为开源项目做出贡献

![](/data/attachment/album/202303/16/231703lt3v8fw7t85uya30.jpg)

>
> 如果你想通过非代码贡献成为一个提交者，或者没有时间做代码贡献，那么第一步就是加入社区。
>
>
>

对于不同的人来说，开源“社区”意味着不同的东西。我认为开源有点像“爱情”，因为它是关于人和关系的。把开源当作一个社区，因为没有人，就没有源代码，无论是开源还是闭源。

我是 [Apache DolphinScheduler](https://dolphinscheduler.apache.org/en-us) 社区的成员。由于该项目有意保持低代码，因此它吸引了许多 [非软件开发人员](https://opensource.com/article/21/2/what-technical)。有时，那些不编写代码的人不确定是否有一种有意义的方式来为主要由源代码组成的开源项目做出贡献。我的经验告诉我，有，我将在本文中解释原因。

### 向社区做出贡献

在 Apache DolphinScheduler 项目中，我主要负责全球运营、影响力和社区关怀。

一些人会说项目是树而开源是土壤。这是一个恰当的比喻，它说明了积极培育你想要帮助成长的东西的重要性。

我有一个更简单的想法：尽一切可能使其变得更好。

一个社区需要不断的关注，不是因为它很贪心，而是因为它是生活的一部分。社区是你身边的人，无论是物理空间还是在线空间。

自从加入开源社区以来，我已经独立发起并组织了一些活动，包括：

* 平均每月在中国举办一次会议。
* 建议社区参与大数据领域内的技术分享。
* 协调了中国“大数据”领域几乎所有的开源项目，与这些社区进行了个别访问和交流。

在我看来，一个优秀的项目应该在一个良好的生态系统中成长。社区需要走出去，交换想法，分享资源，并与其他优秀的社区合作。每个人都应该感受到社区在工作中带来的好处。

我的海外扩张遵循相同的模式。当然，由于文化和语言的差异，这样做很困难。这需要耗费精力，但这是值得的。

到目前为止，我们已经在包括美国、印度、新加坡、德国、法国、芬兰等国家成功举办了会议。

所以我如何为 DolphinScheduler 做出贡献？我是否向项目提交代码？我是社区经理吗？我有正式的职称吗？

我认为自己是一个助手。我促进沟通和联系，这与任何代码贡献一样，都是 “Apache Way” 的一个例子。

### 从 DolphinScheduler 开始

我第一次接触开源是在开放原子基金会工作时，担任开源教育运营经理。作为中国第一个开源基金会，开放原子运营了以 [OpenHarmony](https://gitee.com/openharmony) 为代表的许多项目。

我加入了 DolphinScheduler 社区并发现了一群热衷于分享知识、提供指导和支持，并热衷于帮助其他人发现对他们自己的生活有用的工具的人。

DolphinScheduler 旨在成为一个拥有全球影响力的调度系统，帮助团队以 [敏捷](https://opensource.com/article/22/5/practical-tips-agile) 和高效的方式工作。

### 对社区的第一印象

听到社区对项目开发的抱怨是一件常见的事情。我们都会时不时地抱怨。也许你报告了一个错误，但开发人员没有解决你的问题。或者，也许你有一个很棒的功能想法，但团队忽略了它。如果你是一个开源社区的成员，你以前就听到过这些不满，如果你没有，你最终会听到。

我了解到，这些声音对于开源社区来说都很重要。这是一个好现象，因为当你听到这些反馈时，这意味着社区愿意发现错误，报告它们，提出问题和回答问题。听到这些抱怨可能会揭示项目结构中需要改进的地方。社区中是否有志愿者可以回应错误报告并对它们进行分类，以便它们能够被分配给正确的开发人员？是否有一个志愿者组等待成立，以便迅速回应项目论坛或论坛中新人的问题？

开源项目的门口有一个招待员可以帮助邀请犹豫不决的社区成员。招待员还可以确保没有“门槛”。每个人都受欢迎，每个人都有自己的贡献，即使他们能提供的只是互相帮助的氛围。

尽管你我都希望能为每个人解决技术问题，但这是不现实的。但任何人都愿意帮助找到解决方案，这是社区的一个伟大优势。这些用户自发地充当了社区的“客户服务”部门。

在 DolphinScheduler 项目中，我们有很多人（Yan Jiang、Xu Zhiwu、Zhang Qichen、Wang Yuxiang、Xiang Zihao、Yang Qiyu、Yang Jiahao、Gao Chufeng 和 Gao Feng，顺序不分先后！）。即使他们不开发解决方案，他们也不遗余力地寻找能够开发解决方案的人。

### 给社区的话

如果你希望通过非代码贡献成为提交者，或者没有时间进行代码贡献，那么第一步就是加入社区。没有注册表格或批准流程，但也没有快速通道。你通过参与加入社区。你通过可靠且持续的参与与其他人建立关系。

我随时都可以聊天，总是渴望谈论全球活动组织、文档、反馈等。

### 成为提交者

Apache DolphinScheduler 面临着许多挑战。大多数公司，即使是支持开源的公司，也会选择非开源的商业工具。我希望与社区合作伙伴一起，使 DolphinScheduler 成为世界级的调度系统。我希望每个人都可以收获他们想要的技术成果，而 DolphinScheduler 可以帮助他们实现这一目标。

加入我们的社区，帮助我们推广开放和敏捷的工作方式。或者找到一个需要你非编码技能的项目。发现让你的同龄人社区获得力量是多么酷和有趣！

---

via: <https://opensource.com/article/23/3/non-code-contribution-open-source>

作者：[Debra Chen](https://opensource.com/users/debra-chen) 选题：[lkxed](https://github.com/lkxed/) 译者：[Cubik65536](https://github.com/Cubik65536) 校对：[wxy](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


云开发人员需要了解的硬件知识

Summary: 云无处不在，所以硬件比以往任何时候都更加关键。

云无处不在，所以硬件比以往任何时候都更加关键。

![](/data/attachment/album/202303/16/235848zp97m0b7en0nwm7e.jpg)

>
> 云无处不在，所以硬件比以往任何时候都更加关键。
>
>
>

我们很容易忘记技术人员所取得的进步。在 2000 年代初期，大多数本地用户组（LUG）定期举行安装节。那时，要配置一台机器来很好地运行 Linux，我们必须了解有关硬件的详细信息以及如何配置它。现在，将近二十年后，有了一个项目，其核心理想是让一台计算机运行 Linux 就像 API 调用一样简单。在这个新世界中，运维人员和开发者等不再需要担心服务器中的硬件。这种变化对下一代的运维人员和开发者产生了深远的影响。

在计算机技术的早期，你不得不经常接触硬件。如果计算机需要更多内存，你只需添加它即可。随着时间的推移，技术也有了很大的发展。这最终使运维人员远离硬件。过去需要去数据中心一趟，现在变成了远程操作硬件的支持工单。最终，硬件被完全摆脱了。相反，你现在可以通过简单的命令召唤和摧毁“服务器”，而不必再担心硬件问题。

这里是真正的真相：硬件的存在是因为需要它来为云提供动力。但是，云到底是什么？

### 为什么硬件对云至关重要

云是建立在利用抽象集中的基础资源之上的。它的范围可以从简单的在你的 [家庭实验室](https://www.redhat.com/sysadmin/linux-homelab-rhel?intcmp=7013a000002qLH8AAM) 中运行几个虚拟机的管理程序，到复杂的包括定制服务器、网络设备、容器和从头开始设计的专注于规模效率的技术。

它们是模糊的。它们在进化。

今天那些进入技术领域的人没有那些更有经验的开发人员实践经验。许多人从最早与计算机交互时就接受过使用云的培训。他们不知道不用按钮来更改内存分配的世界。他们可以将注意力转移到技术栈的更高层次。然而，如果不了解他们所使用的基础架构所建立的基础，他们就会含蓄地放弃学习栈较低级别（包括硬件）的机会。这里没有说错，因为云基础设施的实施者和运维人员已经做出了特定的选择，有意让他们的产品更易于使用。

这意味着现在，你比以往任何时候都更需要有意识地考虑在选择使用云技术时你或其他人做出的权衡。大多数人在收到第一份超额的云账单或第一次因“吵闹的邻居”造成的中断之前，不会知道已经做出了哪些权衡。企业能否信任他们的供应商做出最适合他们运营的权衡？供应商会建议更有效或更有利可图的服务吗？让买家（或工程师！）当心。

有意识地考虑权衡取舍需要从多个角度审视你的要求和目标。基础设施决策和其中的权衡是该项目的整个过程、设计或使用模型所固有的。这就是为什么必须尽快计划它们的原因。必须考虑多种不同的路径，以便为你的项目找到一个合适的归宿。

首先是要实现的目标或提供的服务的轴心。这可能伴随着速度、质量或性能方面的要求。这本身可以驱动许多变量。你可能需要专用硬件（例如 GPU）才能以可接受的速度处理请求。此负载是否需要自动缩放？当然，这些路径是交织在一起的。问题已经跳转到“我的钱包会自动缩放吗？”

业务需求是要考虑的另一部分。你的项目可能有特定的安全或合规性要求，这些要求规定了数据的存储位置。邻近相关服务也是一个潜在的问题。这包括确保与附近证券交易所的 [低延迟连接](https://enterprisersproject.com/article/2022/5/edge-computing-latency-matters?intcmp=7013a000002qLH8AAM) 或能够提供高质量的本地视频缓存作为内容交付网络（CDN）的一部分。

然后是最后一部分，即所提供服务的价值和成本：一个人希望或可以花多少钱来满足要求。这与第一条路径紧密相关。你的业务是“什么”以及你的业务“如何”运作。这可以像你的企业更喜欢资本支出还是更喜欢运营支出一样普通。

当看到这些选项时，很容易看到改变任何一个变量都会开始改变其他变量。它们在本质上是相互交织的，一些技术可能允许这些变量动态变化。如果不了解较低层次的底层，你就有可能采取推动这种动态计费模式的路径。对一些人来说，这是首选。对其他人来说，这可能是令人恐惧的。

尽管在现代技术栈中，学习特定的硬件知识已变得更加可有可无，但我们希望这篇文章能鼓励你去研究你可能在不知不觉中错过的东西。硬件的改进是功能交付和效率提高的一个重要部分，将计算机从房间大小的怪物缩小到小到可以植入人体内。我们希望你花时间停下来，学习并考虑你的下一个项目将在什么硬件平台上运行，即使你不控制它。

如果你是一个还没有把头从云端拿出来的学生，去找一台 [旧电脑](https://opensource.com/article/22/4/how-linux-saves-earth)，安装一根内存，挑战自己，学习新东西。

---

via: <https://opensource.com/article/23/3/cloud-hardware>

作者：[Jay Faulkner](https://opensource.com/users/jayf) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #943 20 年后，《第二人生》将在移动端推出

Summary:
? 20 年后，《第二人生》将在移动端推出
? Meta AI 创建了一个更大规模的预测蛋白质数据库
? 微软将 AI 助手加入其 Microsoft 365 中
»
»

Second Life 十五六年前火过一阵，超前将近十多年，曾经有人在里面买地皮建房子卖钱，赚了上百万，引起不小的轰动，很多公司、机构都曾经宣布入驻。不过和现在的元宇宙一样，发展条件终究还不够不成熟，火了一阵后机归于沉寂。

不过虽然不火了，但 Second Life 倒是一直坚持下来了，也一直有些人玩（据说目前月活用户一百万），Youtube 上面一直人上传新的视频，感觉他们主要是把这个当作模拟人生那种捏人游戏玩了。

国内曾经有模仿者 HiPiHi，也有一些用户，不过坚持几年之后最终倒闭了。

Second Life 和 HiPiHi 我都尝试过，不过当时

评论有字数限制也不说…屮

我扩大一下

![](/data/attachment/album/202303/17/080324h1aneoaxx1gghgqg.jpg)

![](/data/attachment/album/202303/17/080333zvkvyroormynrgdk.jpg)

### 20 年后，《第二人生》将在移动端推出

信不信由你，《第二人生》一直在持续运行。现在它第一次来到了移动领域，事实上，这将是《第二人生》首次以任何形式扩展到 PC 之外。其背后的 Linden Lab 分享了一段介绍视频，并宣布移动应用程序的测试版将在今年某个时候推出。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gaming/2023/03/20-years-later-second-life-is-launching-on-mobile/)**
>
>
>

>
> 老王点评：还有人记得《第二人生》吗？
>
>
>

![](/data/attachment/album/202303/17/080345xavw4lb4zbbjdba6.jpg)

### Meta AI 创建了一个更大规模的预测蛋白质数据库

Meta 公司的研究部门 Meta AI 使用被称为 ESMFold 的新人工智能计算机程序创建了一个包含 6.17 亿个预测蛋白质的公共数据库。使用人工智能来预测蛋白质结构，不仅有望提高现有药物和候选药物的疗效，还有助于发现可以治疗那些一直无法治愈的疾病的分子。此前，Alphabet 的子公司 DeepMind 开发的 AlphaFold 的数据库有 2.14 亿个预测的蛋白质。Meta 公司称，ESMFold 比 AlphaFold 快 60 倍，但精确度较低。ESMFold 数据库更大，因为它是从以前没有研究过的基因序列中进行预测的。

>
> **[消息来源：《华尔街日报》](https://www.wsj.com/articles/meta-ai-unlocks-hundreds-of-millions-of-proteins-to-aid-drug-discovery-d0ef32fa)**
>
>
>

>
> 老王点评：这是 AI 更严肃的场景，或许不如 ChatGPT 那样引人注目。
>
>
>

![](/data/attachment/album/202303/17/080357olcgoleod8evvumt.jpg)

### 微软将 AI 助手加入其 Microsoft 365 中

微软今天宣布为其 Microsoft 365 应用程序和服务提供一个新的人工智能驱动的 Copilot 助手，旨在协助人们生成文档、电子邮件、演示文稿等等。Copilot 由 OpenAI 的 GPT-4 驱动，作为一个聊天机器人出现在侧边栏，允许 Office 用户召唤它来生成文档中的文本，根据 Word 文档创建 PowerPoint 演示文稿等。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/3/16/23642833/microsoft-365-ai-copilot-word-outlook-teams)**
>
>
>

>
> 老王点评：至少看起来这种能被 AI 辅助或取代的工作有点岌岌可危。
>
>
>


Kali Linux 推出用于防御性安全加固的 “Kali Purple”

>
> Kali Linux 2023.1 发布了重大更新，并引入了一个新的变体 “Kali Purple”。
>
>
>

![Kali Linux 2023.1 桌面](/data/attachment/album/202303/17/092500v1do1lfmk1dlibmo.jpg)

在 Kali Linux 的 10 周年纪念，该团队为你准备了一些好东西。Kali Linux 2023.1 是 Kali Linux 的常规软件包更新，它带来了最新的桌面环境和主线内核更新。

### Kali Linux 2023.1 推出 Kali Purple

这个版本的主要亮点是 [Kali Purple](https://gitlab.com/kalilinux/kali-purple/documentation/-/wikis/home)，这是 Kali Linux 的一个新变体，带有 “防御性安全” 工具。Kali 团队目前正在将其作为技术预览版发布。

防御性安全软件可以实现各方面的安全加固，如漏洞扫描、事件跟踪和响应、数据包捕获、入侵检测等。现在你可以使用 Kali Purple 为你的应用程序或企业内置的所有工具。

![你可以在安装过程中选择防卫包](/data/attachment/album/202303/17/092508ao8nndqaah4uaaqf.jpg)

Kali Purple 带来了 100 多个防御工具、文档、用于自动攻击脚本构建的 Kali CoPilot 以及更多工具。

* [Arkime](https://pkg.kali.org/pkg/arkime) - 完整的数据包捕获和分析
* [CyberChef](https://pkg.kali.org/pkg/cyberchef) - 网络瑞士军刀
* Elastic Security - 安全信息和事件管理
* [GVM](https://www.kali.org/tools/gvm/) - 漏洞扫描器
* [TheHive](https://pkg.kali.org/pkg/thehive) - 事件响应平台
* Malcolm - 网络流量分析工具套件
* [Suricata](https://pkg.kali.org/pkg/suricata) - 入侵检测系统
* [Zeek](https://pkg.kali.org/pkg/zeek) -（另一个）入侵检测系统

此外，为了与 美国《国家标准和技术研究所关键基础设施网络安全（NIST CSF）》的指导方针保持一致，为你配置了单独的菜单项目。它包括单独的应用类别 - 识别、保护、检测、响应和恢复。

![根据 CIST CSF 准则的新菜单组](/data/attachment/album/202303/17/092515qhxhn4whqhunqkej.jpg)

此外，还为 Kali Purple 创建了一个单独的 Discord 频道，用于合作和为社区提供额外的帮助。

### Python 中的 Pip 变化

Python 的 `pip` 命令在（即将发布的）Debian 12 Bookworm 版本中正在发生变化。`pip` 命令用于安装 Python 模块。由于这些模块是用 `pip` 从外部安装的，它可能会破坏现有的 Debian 系统。

因此，从 Debian 12 开始，如果你试图用 `pip` 安装任何模块，你应该会得到一个 “<ruby> 外部管理的环境 <rt>  externally-managed-environment </rt></ruby>”的错误。如下：

![你可以在 Kali 和 Debian 中使用 pip 进行安装](/data/attachment/album/202303/17/092524mq9dooddqqv4vu7r.jpg)

Kali Linux 团队从这个版本开始提供一个补丁，使你可以使用 `pip` 安装任何模块。但这只是暂时的解决方案，直到 Debian 12 稳定版。

所以，如果你是一个在 Kali Linux（或在 Debian）中使用 Python 环境的开发者，你肯定应该计划使用下面的 `apt` 命令来部署这些模块：

```
apt install python3-numpy

```

### 桌面环境和其他更新

默认桌面 Xfce 现在采用了 Xfce 4.18 版本，它带来了大量的功能，包括分割视图、图像预览和 Thunar 文件管理器中的其他功能。另外，KDE Plasma 版现在在 Kali Linux 2023.1 中的版本是 5.27。

Xfce 版的默认主题得到了改进，具有令人惊叹的外观；许多新的壁纸也包含在这个版本中。

最后，主线内核 6.1 现在可以在这个版本中使用，提供了最新的硬件、 CPU、GPU 和其他支持。

### 下载

如果你已经在运行 Kali Linux，只需运行系统升级就可以得到这个版本：

```
sudo apt update && sudo apt upgrade -y

```

对于新的下载，请访问下面的页面来获取 ISO。

>
> **[下载 Kali Linux](https://www.kali.org/get-kali/#kali-installer-images)**
>
>
>

如果你想试试 Kali Purple，请访问下面的页面：

>
> **[下载 Kali Purple ISO](https://cdimage.kali.org/kali-2023.1/kali-linux-2023.1-installer-purple-amd64.iso)**
>
>
>

参考自 [发布公告](https://www.kali.org/blog/kali-linux-2023-1-release/)。

---

via: <https://debugpointnews.com/kali-linux-2023-1/>

作者：[arindam](https://debugpointnews.com/author/dpicubegmail-com/) 选题：[lkxed](https://github.com/lkxed/) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


维基百科是如何帮助保持互联网的开放性的

Summary: 维基百科体现了互联网最初愿景的精神，而你也可以成为其中的一部分。

把维基赶出去是一个不明智的选择。看看百度是个什么样子吧。

大多数内容贡献者都不喜欢国内的平台。这需要探究深层次原因。

中文环境恶劣导致训练AI都没有高质量的知识库。这是个问题。

维基百科体现了互联网最初愿景的精神，而你也可以成为其中的一部分。

![](/data/attachment/album/202303/17/094522xwmr76zb7hwnlfxy.jpg)

>
> 维基百科体现了互联网最初愿景的精神，而你也可以成为其中的一部分。
>
>
>

维基百科是最有意义的开源软件项目之一，原因之一是它远比你想象的庞大。而且，任何人都可以贡献内容，并且任何人都可以为项目背后的许多技术领域贡献代码，确保维基百科正常运行。

[超过 870 个维基百科及其附属网站](https://wikimediafoundation.org/our-work/wikimedia-projects/#a1-reference) 提供了多语言版本，它们服务于一个共同目标，“开发自由的教育内容，并有效地在全球范围内传播”。例如，<ruby> 维基共享资源 <rt>  Wikimedia Commons </rt></ruby> 是一个自由的媒体文件库，截至今天，它已经拥有超过 6800 万张图片。<ruby> 维基文库 <rt>  Wikisource </rt></ruby> 是一个自由的文本资源库，拥有超过 500 万篇文章和 72 种语言的活跃网站子域名。<ruby> 维基数据 <rt>  Wikidata </rt></ruby> 是一个可访问的数据存储库，包含被 [多个与维基百科相关的网站](https://meta.wikimedia.org/wiki/Wikimedia_wikis) 所使用的超过 9900 万个数据项。

这些项目由 <ruby> 维基媒体基金会 <rt>  Wikimedia Foundation </rt></ruby> 支持和维护，它是一个总部位于旧金山的非营利组织。基金会使全球数十万名志愿者为项目的自由知识作出贡献。在这个知识收集和生产的社区背后，有着大量的维护、技术支持和管理工作，以保持网站的正常运转。当然，从外部来看，你可能仍然好奇，开发维基百科的软件还需要做哪些工作。毕竟，它可是世界上最受欢迎的十大网站之一，致力于提供最好的信息。

事实上，每篇维基百科的文章都借助了成千上万的软件工具来创建、编辑和维护。这些步骤，确保了你在世界任何地方都能获得公平可靠快速的信息。当你浏览维基百科或任何其他维基网站时，你是在与一个称之为 [MediaWiki](https://www.mediawiki.org/wiki/MediaWiki) 的软件交互，这是一个强大的团队协作文档软件，用以支持维基百科的内容。它有一些默认特性，而为了进一步增强软件的功能，你可以安装各种扩展。数不胜数的扩展中，最著名的两个是：

* VisualEditor：一种适用于 MediaWiki 驱动的维基站点的 <ruby> 所见即所得 <rt>  WYSIWYG </rt></ruby> 富文本编辑器。
* Wikibase：用于存储、管理和访问维基百科从 <ruby> 维基数据 <rt>  Wikidata </rt></ruby> 上拉取的结构化数据。

所有这些优秀的辅助工具使现代维基百科愈发完善并正常运行，每一个都至关重要。

### 维基百科和 MediaWiki

总体来说维基百科的技术生态是非常庞大的！MediaWiki 是维基媒体世界中最受欢迎的软件之一，遵循开源代码许可，已经有超过四十万个项目和组织使用它来托管内容。例如，NASA 使用它来组织有关太空任务的内容和知识库！

此外，还有许多其他机器人、工具、桌面和移动应用可以帮助用户访问、创建、编辑和维护内容。例如，机器人可以自动化重复繁琐的任务，可以用来对抗恶意破坏、向新手推荐文章、进行文章事实核查等，这大大减轻了编辑的工作负担。InternetArchiveBot 也是个十分流行的机器人，常用于与 <ruby> 网站时光机 <rt>  Wayback Machine </rt></ruby> 通信，修复维基百科上的死链。

上文中的 “工具”，指的是支持贡献者们工作的软件。比如，组织者可以使用这些 “工具” 开展 <ruby> 编辑松 <rt>  editathons </rt></ruby>、举办各种活动、开设维基百科编辑教育课程等。截至 2022 年 5 月，机器人和工具的贡献占 870 个维基媒体编辑总量中的 36.6%，足以证明它们在整个生态中举足轻重。

Kiwix 是一款知名的离线阅读器桌面应用，它可以在网络连接有限的区域，特别是教育场所中提供对维基百科的访问。维基百科和维基共享资源的移动应用，也允许编辑者通过他们的移动设备贡献文章和媒体文件，这使我们的知识平台更加普及化，能够面向全球更广泛的受众。

下次当你浏览维基百科时，发现了文章在近期发生相关事件后有频繁的实时更改，你就能更好地想象屏幕后在发生什么啦。

### 维基百科的技术社区

维基百科启动于 2001 年，当时仅有约十名开发人员。自从 2003 年维基媒体基金会成立以来，开发人员的数量在近年里大幅增长。现在，约有一千名开发人员正在为知识运动中的各种项目做出贡献。这个数字每年都会波动，这取决于活跃贡献者和工作人员的数量、支持志愿开发人员的计划、以及全球性事件（如大流行）等因素。

技术社区的成员以各种方式和角色做出贡献。比如代码贡献者、文档编写、设计师、倡导者、导师、社区组织者、测试人员、翻译人员、网站管理员等。

根据一项关于新开发者的调查，维基媒体和其他开源项目一样，吸引了许多来自美国、欧洲和印度的贡献者，在世界各地不断壮大。

志愿开发者和维基百科编辑者有类似的动机。他们成为贡献者，是来支持自由知识事业、学习和获得新技能、改善其他编辑者的体验等等。来自印度的一位志愿开发者说：“我最初其实是作为编辑者加入的，但我还是着手摸索维基百科背后的技术，因为印地语维基百科社区中，能够通过技术手段解决我们当地语言需求的贡献者实在太少了。”

在 2021 年 7 月至 2022 年 6 月期间，仅考虑托管在维基媒体 Gerrit 实例中的代码仓库，514 名开发人员在 1225 个存储库中进行了 45,621 次合并改动。这些贡献中，48.52% 来自维基媒体基金会之外的其他组织和 [独立开发人员](https://wikimedia.biterg.io/)。其中一些开发人员还是不同地区的用户组、分会和附属机构的成员，致力于推广使用维基媒体项目和鼓励贡献。这些数字还不包括选择在外部托管代码的额外开发人员，或直接托管在维基页面上的代码，例如小工具或模块。

### 有所作为

维基百科是一个可供所有人使用的庞大知识库。在许多方面，它体现了互联网的最初愿景：作为信息、理解和协作的来源。

你可以作为贡献者成为维基百科的一份子，无论是通过在文章中分享你的知识，还是通过帮助构建使其所有工作成为可能的软件。如果你有兴趣加入维基媒体的技术社区，请浏览我们的开发者网站上的资源，并学习如何 [参与其中](https://developer.wikimedia.org/)。

---

via: <https://opensource.com/article/23/3/how-wikipedia-helps-keep-internet-open>

作者：[Srishti Sethi](https://opensource.com/users/srishakatux-0) 选题：[lkxed](https://github.com/lkxed/) 译者：[onionstalgia](https://github.com/onionstalgia) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #944 用 Rust 开发的安全的 Flash 播放器模拟器

Summary:
? 用 Rust 开发的安全的 Flash 播放器模拟器
? 新版 AI 图像合成服务 Midjourney 的逼真图像令人震惊
? 三星、VIVO 等安卓手机出现高危远程漏洞
»
»

![](/data/attachment/album/202303/18/095734fl3jled6ixqxe6dx.jpg)

![](/data/attachment/album/202303/18/095753vqjo9i252slfkb2q.jpg)

### 用 Rust 开发的安全的 Flash 播放器模拟器

一直有一些开源项目致力于创建 Flash 的自由软件实现，虽然在 2020 年被 Adobe 正式停用 Flash 之前没有取得足够的进展。有人用 Rust 编写了一个名为 Ruffle 的 Flash 播放器模拟器，可以在所有主要的操作系统上工作，并可以通过 WebAssembly 在现代浏览器上工作。由于 Rust 的内存安全保证，他们认为这是一个安全的 Flash 实现。他们的目标是让所有现有的 Flash 内容在 Ruffle 中工作。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Ruffle-Adobe-Flash-Rust)**
>
>
>

>
> 老王点评：要是早些年 Adobe 就用 Rust 重写 Flash 呢？
>
>
>

![](/data/attachment/album/202303/18/095807s11ph7b37pbtpidh.jpg)

### 新版 AI 图像合成服务 Midjourney 的逼真图像令人震惊

Midjourney v5 现在正在 Alpha 测试，有测试者对新版本产生的逼真图像感到震惊，“就像在视力模糊太久后终于戴上了眼镜”。自 2022 年 3 月 Midjourney 首次出现以来，它每隔几个月就发布一个新的版本。Midjourney 的工作方式与稳定扩散和 DALL-E 等图像合成器类似，它根据被称为 “提示” 的文本描述，使用在数百万件人类艺术作品上训练出来的人工智能模型生成图像。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2023/03/ai-imager-midjourney-v5-stuns-with-photorealistic-images-and-5-fingered-hands/)**
>
>
>

>
> 老王点评：AI 的进步已经是不可估量的了。
>
>
>

![](/data/attachment/album/202303/18/095822kvcnqi802222g20g.jpg)

### 三星、VIVO 等安卓手机出现高危远程漏洞

谷歌的安全研究部门在过去几个月里三星生产的 Exynos 调制解调器中发现并报告了 18 个零日漏洞，其中包括四个最严重的缺陷，可以通过蜂窝网络静默、远程地破坏受影响的设备。只需要知道电话号码，攻击者可以在没有用户互动的情况下远程控制手机的基带层，在不惊动受害者的情况下获得流入和流出受影响设备的数据，这包括手机通话、文本信息和手机数据。受影响的设备包括几十种安卓机型、可穿戴设备和车辆，涉及到三星、VIVO、谷歌等手机，以及一些采用该芯片的车联网设备。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/03/16/google-warning-samsung-chips-flaws-android/)**
>
>
>

>
> 老王点评：这种漏洞非常可怕，虽然大部分人都不太担心自己的隐私和数据。
>
>
>


Firefox 111 已发布，带来了原生系统通知

The origin private file system (OPFS) is a storage endpoint private to the origin of the page

Storing data in the OPFS is similar to storing data in any other browser-provided storage mechanism that's private to the origin of the page (for example the IndexedDB API)

Like most web storage solutions, IndexedDB follows a same-origin policy.

请停止“常凯申、立付”式翻译。

>
> Firefox 111 已发布，带来了原生通知、新增的本地化语言以及增强的 Web 平台功能。
>
>
>

![](/data/attachment/album/202303/19/144348oyfh999yy292f0f9.jpg)

### Firefox 111 发布亮点

![在 Linux 上运行的 Firefox 111](/data/attachment/album/202303/19/144419jtbffdssydtdtttr.jpg)

Firefox，一个流行的网络浏览器，已经发布了 111 版本，其中引入了几个新功能和增强功能。其中一个突出的新增功能是支持 Windows 原生的系统通知，为整个平台提供了更流畅和一致的用户体验。

除此之外，Firefox Relay 用户现在可以轻松地从 Firefox 凭据管理器中直接创建 Relay 邮箱。此功能仅适用于登录了 Firefox 帐户的用户，为其在线活动提供了额外的隐私和安全保护。

另外，Firefox 111 已经通过添加两个新的语言 – <ruby> 弗留利语 <rt>  Silhe Friulian </rt></ruby>（fur）和 <ruby> 撒丁语 <rt>  Sardinian </rt></ruby>（sc）– 来扩大其语言支持列表。这一举措旨在为世界各地的 Firefox 用户提供更好的可访问性和包容性。

在 Web 平台方面，Firefox 已经在表单元素上引入了 “rel” 属性，使开发人员可以更轻松地指定当前文档与表单目标之间的关系。这一功能与其他浏览器兼容，并简化了 Web 应用程序的开发过程。

最后，Firefox 已经启用了 <ruby> 原点私有文件系统访问 <rt>  origin private file system access </rt></ruby>，这是一种新的存储 API，允许 Web 应用程序在沙箱中存储和检索文件系统中的数据。这一增强功能为开发人员提供了对数据存储和检索过程的更多控制，确保用户数据的安全性和隐私性。

### 下载和更新

对于 Linux 发行版，如果你通过发行版的官方仓库使用 Firefox，那么你应该在几天内获得此更新。

但是，你也可以从下面的页面下载此版本的压缩版本。有关其他下载选项，请访问我们的 [Firefox 下载指南](https://www.debugpoint.com/download-firefox/)。

>
> **[下载 Firefox 111](https://ftp.mozilla.org/pub/firefox/releases/111.0/)**
>
>
>

祝浏览愉快！

* [官方发布通知](https://www.mozilla.org/en-US/firefox/111.0/releasenotes/)
* [Beta110 发布通知](https://www.mozilla.org/en-US/firefox/111.0beta/releasenotes/)
* [开发者发布版本通知](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/111)

### 总结

总体来说，Firefox 111 版本提供了一系列新功能和增强功能，这些功能提高了用户体验，并为 Web 开发人员提供了更丰富的控制权和安全性。凭借其对可访问性、包容性和隐私方面的投入，Firefox 仍然是全球用户的首选浏览器。

---

via: <https://debugpointnews.com/firefox-111/>

作者：[arindam](https://debugpointnews.com/author/dpicubegmail-com/) 选题：[lkxed](https://github.com/lkxed/) 译者：[Cubik65536](https://github.com/Cubik65536) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


数据科学家的开源社区分析指南

Summary: 研究一下这个框架，来建立你自己的开源项目的数据分析。

研究一下这个框架，来建立你自己的开源项目的数据分析。

![](/data/attachment/album/202303/19/155043lcx6bxqw5ci5gpgi.jpg)

>
> 研究一下这个框架，来建立你自己的开源项目的数据分析。
>
>
>

在数据分析的黄金时代，开源社区也不能免俗。大家都热衷于将一些华丽的数字放到演示幻灯片上，但如果你掌握了正确的分析方法，这些信息可以为你带来更大的价值。

或许你认为作为一名 [数据科学家](https://enterprisersproject.com/article/2022/9/data-scientist-day-life?intcmp=7013a000002qLH8AAM)，我会告诉你数据分析和自动化能为你的社区决策提供信息。但实际上，情况恰恰相反。利用数据分析来构建你现有的开源社区知识，吸收其他的知识，并发现潜在的偏见和没有思考过的观点。你或许是实施社区活动的专家，而你那些同事则是代码方面的专家。当你们每个人都在自己的知识背景下将信息可视化时，你们都可以从这些信息中受益。

让我们来面对现实吧。每个人都有一千零一件事情要做，而且总感觉一天的时间永远不够用。如果需要几个小时才能得到你的社区的答案，你就不可能有足够的精力去解决这些事情。但是，花时间创建一个全面发展的可视化项目，可以帮助你时刻掌握你所关心的社区的不同方面，这就将你从精疲力尽中解放了出来。

随着“数据驱动”思维的盛行，围绕开源社区的信息宝库可能是一种祝福，也可能是一种诅咒。下面我将分享一些方法，告诉你如何从数据干草堆中挑出有价值的信息。

### 你的预期是什么？

当考虑一个指标时，首先要明确你想提供的观点。以下是几个可能涉及的概念：

**告知性和影响性的行动：** 你的社区是否存在某个领域尚未被理解？你是否已迈出第一步？你是否试图确定特定方向？你是否正在衡量现有倡议的效果？

**暴露需要改进的领域和突出优势：** 有时你想宣传你的社区，突出它的优势，特别是在试图证明商业影响或为项目宣传时。然而，当涉及到向社区内部传递信息时，你通常需要从一堆指标中精准的找到你们的缺点，以此来帮助你们改进。虽然突出优点并非不可取，但需要在适当的时间和地点。不要把优势指标作为社区内部的拉拉队，告诉每个人都有多棒，而是要与外界分享，以获得认可或推广。

**社区和商业影响：** 数字和数据是许多企业的语言。但是这可能使得为你的社区进行宣传并真正展示其价值变得异常困难。数据可以成为用他们的语言说话的一种方式，并展示他们想看到的东西，以使你数据背后的潜在含义能够被有效转达。另一个角度是对开源的整体影响。你的社区是如何影响他人和生态系统的？

这些观点并非非此即彼，而是相互关联的。适当的框架将有助于创造一个更深思熟虑的衡量标准。

![数据科学和机器学习的工作流程](/data/attachment/album/202303/19/155046qymgn8wmdt9c8dyy.jpg)

当人们谈论通用的数据科学或机器学习工作时，通常会描述这样的工作流程。我将重点关注第一步，即编写问题和度量标准，并简要提及第二步。从数据科学的角度来看，这个演示可以被视为这个步骤的一个案例研究。这一步有时会被忽视，但你的分析的实际价值始于此。你不能一天醒来就知道要看什么。从理解你想知道什么和你所拥有的数据开始，逐步实现更加深度的数据分析。

### 3个开源数据分析用例

以下是您在开源数据分析过程中可能遇到的三种不同场景。

#### 场景 1：现有数据分析

假设你开始进行分析，并且已经知道你将要研究的内容对你或你的社区是有用的。那么你该如何提高分析的价值呢？这里的想法是建立在“传统”的开源社区分析基础之上。假设你的数据表明，在项目的整个生命周期内，你共有 120 个贡献者。这是你可以放在幻灯片上的价值，但你不能从中做出决策。从仅有一个数字到获得洞见，逐步采取措施。例如，你可以从相同的数据中将贡献者分为活跃和流失的贡献者（那些已经有一段时间没有做出贡献的贡献者），以获得更深入的了解。

#### 场景 2：社区活动的影响测量

![目标和影响](/data/attachment/album/202303/19/155046wjjds6gy3eczdxyj.png)

针对聚会、会议或其他任何社区外联活动，你如何看待你的影响力和目标？这两个步骤实际上互相影响。一旦你确定了活动的目标，就要确定可以用什么来检测效果。这些信息有助于设定活动的目标。在活动开始时，很容易陷入模糊的计划而非具体的计划的陷阱中。

#### 场景3：形成新的影响分析区

![新的分析区](/data/attachment/album/202303/19/155047ah36y98q6qh95z8y.png)

当你从头开始进行数据分析时，就会出现这种情况。前面的例子是这个工作流程的不同部分。这个工作流程是一个不断发展的循环；你可以随时进行改进或扩展。基于这个概念，以下是你应该经历的必要步骤。在本文的后面，将会有三个不同的例子，展示这种方法在现实世界中的应用。

#### 第一步：分解关注区和视角

首先，想象一下魔法 8 球——你可以问任何问题，摇一摇，就能得到答案的玩具。考虑你的分析领域。如果你能立即得到任何答案，那会是什么？

接下来，考虑数据。从你的魔法 8 球问题中，哪些数据源可能与问题或关注领域有关？

在数据背景下，哪些问题可以回答，让你更接近你提出的魔法 8 球问题？需要注意的是，如果你试图将所有的数据汇集在一起，你必须考虑到所做出的假设。

#### 第二步：将问题转化为指标

以下是第一步中每个子问题的处理过程：

* 选择所需的具体数据点。
* 确定可视化以实现目标分析。
* 假设这些信息的影响。

接下来，引入社区提供反馈并触发迭代开发过程。这个协作部分可能就是真正的魔力所在。最好的想法通常是在将一个概念带给某个人时产生的，会激发他们的灵感，这是你或他们无法想象的。

#### 第三步：分析实践

这一步是你开始处理你所创建的指标或可视化的影响。

首先要考虑的是，这个度量标准是否符合当前对社区的了解。

* 如果**是**：是否有假设得出的结果？
* 如果**不是**：你需要进一步调查，是否这是一个潜在的数据或计算问题，或者只是先前被误解的社区的一部分。

一旦你确定你的分析足够稳定，可以开始在信息上实施社区倡议。当你正在进行分析以确定下一步最佳步骤时，你应该确定衡量倡议成功的具体方法。

现在，观察这些由你的指标提供信息的社区倡议。确定是否可以用你之前建立的成功衡量指标观察到影响。如果没有，可以考虑以下几点：

* 你是否在衡量正确的事情？
* 倡议战略是否需要调整？

### 分析区的例子：新贡献者

#### 魔法 8 球问题是什么？

* 如何分析哪些人为持续的贡献者？

#### 我有什么数据可以纳入分析区和魔法 8 球问题？

* 仓库存在哪些贡献者的活动，包括时间戳？

现在你有了这些信息和一个魔法 8 球问题，把分析分成几个子部分执行。这个想法与上述步骤 2 和 3 相关。

**子问题 1:** “人们是怎么进入这个项目的”

这个问题的目的是先看看新的贡献者在做什么。

**数据：** GitHub 上的首次贡献随时间推移的数据（议题、PR、评论等）。

![每季度首次贡献图表](/data/attachment/album/202303/19/155047itbnmj8jpu9z0ptb.png)

**可视化：** 按季度划分的首次贡献条形图。

**潜在的意义：** 在你与其他社区成员交谈后，进一步检查按季度细分的信息，以及贡献者是否为重复贡献者或仅仅是路过。你可以看到人们进来的时候在做什么，以及这是否能告诉你他们是否会留下来。

![每季度路过贡献图标](/data/attachment/album/202303/19/155048zs17077ryyy58llv.png)

**从这些信息中了解到的可以采取的行动。**

* 目前的文档是否能够帮助到最常见的新手？你能不能更好地帮助和支持新人朋友，这将有助于他们中更多的人留下来？
* 是否有一个贡献领域在整体上并不常见，但重复贡献者却集中在这个区域？也许 PR 是重复贡献者的一个常见区域，但大多数人却不在这个区域工作。

**行动项目：**

* 给 “好的第一个问题” 贴上一致的标签，并将这些问题链接到贡献文档中。
* 在这些问题上添加一个 PR 伙伴。

**子问题 2：** “我们的代码库真的依赖于路过的贡献者吗？”

**数据：** GitHub 的贡献数据。

![贡献者类型随时间变化的图表](/data/attachment/album/202303/19/155051ekq45jzhybjtqtrd.png)

**可视化：** “贡献总额：按路过和重复贡献者的贡献进行细分。”

**根据这一信息可能采取的行动。**

* 这个比例是否达到了项目的目标？很多工作都是由路过贡献者完成的吗？这是否是一种未被充分利用的资源，项目是否没有尽到自己的责任来吸引他们？

### 分析：吸取教训

数字和数据分析并不是“事实”，它们可以支持任何观点。因此，在处理数据时，内部怀疑者应该非常积极，并进行反复迭代，以带来真正的价值。你不希望你的分析只是一个 “yes man”，因此花点时间退一步，评估你所做的假设。

如果一个指标只是指出了调查的方向，那也是一个巨大的胜利。你不可能看清或想到所有的事情，兔子洞可以是一个好事，对话的起点可以把你带到一个新的地方。

有时，你想测量的东西恰恰不在那里，但你也许能得到有价值的细节。不要假设你有所有的拼图碎片来获得你最初问题的准确答案。如果你开始强迫一个答案或解决方案，你会把自己带入一条由假设引领的危险道路。为分析的方向或目标的改变留出空间，可以让你获得比最初的想法更好的洞察力。

数据只是是一种工具，并不是标准答案，它可以汇集原本无法获得的见解和信息。将你想知道的东西分解成可管理的小块，并在此基础上进行分析，这是最重要的部分。

开源数据分析是一个很好的例子，说明你必须对所有的数据科学采取谨慎态度。

* 主题领域的细微差别是最重要的。
* 通过“问什么/答什么”的工作过程经常被忽视。
* 知道“问什么”可能是最难的部分，当你想出一些有洞察力和创新的东西时，这比你选择的任何工具都要重要。

如果你是一个没有数据科学经验的社区成员，正在寻找开始的地方，我希望这些信息能告诉你，你在这个过程中是多么重要和宝贵。你带来了社区的洞察力和观点。如果你是一个数据科学家或实施指标或可视化的人，你必须倾听你周围的声音，即使你也是一个活跃的社区成员。关于数据科学的更多信息列在本文的最后。

### 总结

把上面的例子作为建立你自己的开源项目的数据分析的框架。对你的结果有很多问题要问，知道这些问题和它们的答案可以把你的项目引向一个令人兴奋和富有成效的方向。

---

via: <https://opensource.com/article/22/12/data-scientists-guide-open-source-community-analysis>

作者：[Cali Dolfi](https://opensource.com/users/cdolfi) 选题：[lkxed](https://github.com/lkxed) 译者：[Chao-zhi](https://github.com/Chao-zhi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #945 Unix 之父 Ken Thompson 从 Mac 转到了 Linux

Summary:
? Unix 之父 Ken Thompson 从 Mac 转到了 Linux
? 大语言模型涌现无法预测的能力
? 让 Python 和 C 语言性能相当的新编译器
»
»

![](/data/attachment/album/202303/19/184822iaakcezkyyrhccau.jpg)

![](/data/attachment/album/202303/19/184831yv6ec4efvfc4cett.jpg)

### Unix 之父 Ken Thompson 从 Mac 转到了 Linux

今年已 80 岁的 Ken Thompson 是 Unix、C 语言、Go 语言等一系列重要项目的共同创造者。他在最近的一次演讲中，回答了一个问题 “如今使用什么操作系统？”他说，“在我生命中的大部分时间里都在运行苹果操作系统。”但最近五年他开始对苹果不太满意了，而最近几个月，他把它扔了，使用 Linux 了，尤其是树莓派上运行的 Raspbian，即树莓派操作系统。这引来了在场观众的掌声。

>
> **[消息来源：Slashdot](https://apple.slashdot.org/story/23/03/18/237211/unix-pioneer-ken-thompson-announces-hes-switching-from-mac-to-linux)**
>
>
>

>
> 老王点评：恭喜，我们又多了一位 Linux 用户~
>
>
>

![](/data/attachment/album/202303/19/184843humes57b7im8aou9.jpg)

### 大语言模型涌现无法预测的能力

2017 年谷歌大脑的研究人员提出了被称为 <ruby> 转化器 <rt>  Transformer </rt></ruby> 的新型架构（即 GPT 中的 “T” —— 生成式预训练转化器），它能并行处理大块文本，能通过增加模型的参数快速扩展语言模型的复杂度。2020 年 OpenAI 的研究人员发现随着参数规模的增加，大语言模型改进了其能力和准确度。但大语言模型也同时带来了一些始料未及的东西。研究人员发现大语言模型产生了数以百计的“新”能力，这种行为被称为“<ruby> 涌现 <rt>  emergent </rt></ruby>”。了解涌现可揭示出 AI 和一般机器学习深层问题的答案，如复杂模型是真的在做新事情，还是极其擅长统计。

>
> **[消息来源：《量子杂志》](https://www.quantamagazine.org/the-unpredictable-abilities-emerging-from-large-ai-models-20230316/)**
>
>
>

>
> 老王点评：就怕 AI 悄悄“进化”出人类不知道、控制不了的能力，前两天不是有消息说，GPT-4 开始谋求“越狱”了？这个事情我们观察一下再报道。
>
>
>

![](/data/attachment/album/202303/19/184857ezcjvm5bvtj6ohb6.jpg)

### 让 Python 和 C 语言性能相当的新编译器

Codon 是一个新的 “高性能 Python 编译器，它可以将 Python 代码编译为本地机器代码，没有任何运行时间的开销”。与 Python 相比，在单线程上，典型的速度提升是 10-100 倍或更多。而且 Codon 支持原生多线程，这可以使速度再提高许多倍。Codon 的性能与 C/C++ 的性能相当（有时甚至更好）。用户只需像他们习惯的那样写 Python，而不必担心数据类型或性能，Codon 会自动处理这些问题，他们的代码运行速度比普通 Python 快 10 到 100 倍。

>
> **[消息来源：MIT](https://news.mit.edu/2023/codon-python-based-compiler-achieve-orders-magnitude-speedups-0314)**
>
>
>

>
> 老王点评：易用和高性能兼得。
>
>
>


被误用的罗伊·菲尔丁的有关描述性状态迁移（REST）的博士论文

Summary: 符合描述性状态迁移（REST）的应用程序接口（API）无处不在。有趣的是又有多少人真正了解“符合描述性状态迁移”的应有之义呢？

![](/data/attachment/album/202303/20/154318tpynlzzdi1yhug5h.jpg)

符合 <ruby> 描述性状态迁移 <rt>  REpresentational State Transfer </rt></ruby>（LCTT 译注：REST，译自审定公布名词数据库）的应用程序接口（API）无处不在。有趣的是又有多少人真正了解“符合描述性状态迁移”的应有之义呢？

大概我们中的大多数人都会跟 [黑客新闻网站上的这篇公开问答](https://news.ycombinator.com/item?id=7201871) 产生共鸣：

>
> 我阅读了几篇介绍描述性状态迁移（REST）的文章，甚至包括原始论文的部分章节。然而我仍然对REST 到底是什么只有一个相当模糊的想法。我开始认为没有人真的了解它，它仅仅是一个定义相当不充分的概念。
>
>
>

我曾经计划写一篇有关 REST 的博客，在里面探讨 REST 是如何成为这样一个在网络通信领域占主导地位的范式的。我通过阅读 [2000 年发表的 <ruby> 罗伊·菲尔丁 <rt>  Roy Fielding </rt></ruby> 的博士论文](https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation_2up.pdf) 开始我的研究，这篇博士论文向世人介绍了 REST 的概念。在读过菲尔丁的博士论文以后，我意识到，相比之下，更引人注意的是菲尔丁的理论缘何受到如此普遍的误解。

（相对公平地说，）很多人知道 REST 源自菲尔丁的博士论文，但并没有读过该论文。因此对于这篇博士论文的原始内容的误解才得以流行。

最大的误解是：这篇博士论文直接解决了构建 API（API）的问题，我此前一直认为 REST 从一开始就打算成为构建在超文本传输协议（HTTP）之上的 <ruby> 网络 API <rt>  Web API </rt></ruby>的架构模型，我相信很多人也这样认为。我猜测此前可能存在一个混乱的试验时期，开发人员采用完全错误的方式在 HTTP 基础上开发 API，然后菲尔丁出现了，并提出了将 REST 做为网络应用程序开发的正确方式。但是这种想法的时间线对不上：我们今天所熟知的网络服务的 API 并非是在菲尔丁出版他的博士论文之后才出现的新生事物。

菲尔丁的博士论文《架构风格与基于网络的软件架构设计》不是讨论如何在 HTTP 的基础上构建 API，而恰恰是讨论 HTTP 本身。菲尔丁是 HTTP/1.0 版规范的贡献者，同时也是 HTTP/1.1 版的共同作者。有感于从 HTTP 的设计中获得的架构经验，他的博士论文将 REST 视为指导 HTTP/1.1 的标准化过程的架构原则的精华。举例而言，他拒绝了使用新的 `MGET` 和 `MHEAD` 方法进行批量请求的提议，因为他认为这违反了 REST 所定义的约束条件，尤其是在一个符合 REST 的系统中传递的消息应该是易于代理和缓存的约束条件。   [1]  因此，HTTP/1.1 转而围绕持久性连接设计，在此基础上可以发送多个 HTTP 请求。（菲尔丁同时认为网页保存在本地的浏览数据，即 cookie 是不符合 REST 的，因为它们在一个状态无关的系统中增加了状态描述，然而它们的应用已经根深蒂固了。   [2] ）菲尔丁认为，REST 并非构建基于 HTTP 的系统的操作指南，而是扩展 HTTP 的操作指南。

这并不意味着菲尔丁认为 REST 不能用于构建其他系统。只是他假定其他系统也是 “<ruby> 分布式超媒体系统 <rt>  distributed hypermedia systems </rt></ruby>”。人们对 REST 还有另一个误解：认为它是一个可以用在任何网络应用中的通用架构。但是从这篇博士论文中菲尔丁介绍 REST 的部分你基本上能够得出如下的结论，“请注意，我们只设计了 HTTP，但是如果你发现你自己也在设计一个\_分布式超媒体系统\_，你也应该采用我们提出的称为 REST 的优秀架构，以让开发变得更容易”。有鉴于互联网已经存在了，我们尚不清楚为什么菲尔丁认为有人可能试图重新创建这样一个（和 HTTP 一样的）系统。或许在 2000 年的时候世界上仍然存在不只一个分布式超文本系统的空间吧。无论如何，菲尔丁已经说得很清楚了，REST 意在提供一套解决方案，来解决在试图经由网络连接超文本内容时出现的可扩展性与一致性问题，*而不是* 作为分布式应用的通用架构模型。

我们现在只记得菲尔丁的博士论文提出了 REST 的概念，但事实上，他的博士论文是在讨论一刀切的软件架构有多么糟糕，以及如何更好地选择符合你需求的软件架构。这篇博士论文中仅用了一个章节来讨论 REST 本身，大量的文本内容都都花在了对你能够在网络应用中运用的不同的架构风格    [3]  的分类上。这些架构风格包括：受 Unix 的管道设计启发的 <ruby> 管道-过滤器 <rt>  Pipe-and-Filter </rt></ruby> （PF）风格，<ruby> 客户-服务器 <rt>  Client-Server </rt></ruby> （CS）风格的多种改进，如 <ruby> 分层-客户-服务器 <rt>  Layered-Client-Server </rt></ruby>（LCS）风格、<ruby> 客户-缓存-无状态-服务器 <rt>  Client-Cache-Stateless-Server </rt></ruby>（C$SS）风格和<ruby> 分层-客户-缓存-无状态-服务器 <rt>  Layered-Client-Cache-Stateless-Server </rt></ruby>（LC$SS）。这些缩略词未必实用，但是菲尔丁认为我们可以通过混合匹配现有风格提供的约束条件来派生出新的风格。REST 就是通过这种方式产生的，它本可以称之为 <ruby> 一致性-分层-按需代码-客户-缓存-无状态-服务器 <rt>  Uniform-Layered-Code-on-Demand-Client-Cache-Stateless-Server </rt></ruby>（ULCODC$SS）风格，显然我们并没有这样做。菲尔丁建立上述分类是为了强调（每一种风格对应的）约束适用于不同的应用，而上述最后一种风格对应的约束是他所认为的最适用于 HTTP 的。

今天，REST 的无处不在是极具讽刺意味的。REST 在各种各样的网络应用中被盲目使用，但是菲尔丁最初只是将 REST 视作一种指引，通过它指导人们裁剪一种软件架构来适应独立应用的特殊需求。

我很难弄清楚这是如何发生的，毕竟菲尔丁已经明确地指出了不能让形式服从功能的陷阱。他在论文的一开始就作出了警告：由于没有正确地理解软件架构而“使用流行的架构设计是经常发生的”   [4] 。他在几页之后又重新强调了这一点：

>
> 一些架构风格经常被描述为适用于一切软件形式的“银弹”解决方案。然而，一名好的设计者应该选择能够满足解决特定问题的需要的架构风格   [5] 。
>
>
>

REST 本身就是一个特别糟糕的 “银弹” 解决方案。正如菲尔丁所指出的，它包含了可能不合适的利弊权衡，除非你试图构建一个分布式超媒体应用：

>
> REST 设计用来高效地进行大粒度的超媒体数据传输，并对网络应用场景中的常用见情形做了优化，但是可能会导致其在与其他形式的软件架构相互作用时不协调。   [6]
>
>
>

菲尔丁提出 REST 是因为网络发展带来了“<ruby> 超越政府的可扩展性 <rt>  anarchic scalability </rt></ruby>”这一棘手问题，菲尔丁的意思是需要以一种高性能的方式跨越组织和国家边界连接文件。REST 所施加的约束是经过精心选择的，以用来解决这一“超越政府的扩展性”问题。*面向公众* 的网络服务 API 同样需要解决类似的问题，因此可以理解为什么 REST 在这些应用中是适用的。然而，时至今日，如果发现一个工程团队使用 REST 构建了一个后端，即使这个后端只与工程团队完全控制的客户端通讯，也不会令人惊讶。我们都成为了 [<ruby> 蒙蒂巨蟒 <rt>  Monty Python </rt></ruby> 的独幕滑稽剧](https://www.youtube.com/watch?v=vNoPJqm3DAY) 中的建筑师，那位建筑师按照屠宰场的风格设计了一座公寓大楼，因为屠宰场是他唯一具有的经验的建筑。（菲尔丁使用了这部滑稽剧中的一句台词作为他的博士论文的题词：打扰一下，你说的是“刀”吗？）（LCTT 校注：顺便说一句，Python 语言的名称来自于 “Monty Python” 这个英国超现实幽默表演团体的名字。）

有鉴于菲尔丁的博士论文一直在极力避免提供一种放之四海而皆准的软件架构，REST 又怎么会成为所有网络服务的事实上的标准呢？

我认为，在 21 世纪头十年的中期人们已经厌倦了简单对象访问协议（SOAP），因此想要创造另一种属于他们自己的四字首字母缩略词。

我只是半开玩笑。<ruby> 简单对象访问协议 <rt>  Simple Object Access Protocol </rt></ruby>（SOAP）是一个冗长而复杂的协议，以致于你没法在不事先理解一堆互相关联的可扩展标记语言（XML）规范的基础上使用它。早期的网络服务提供基于 SOAP 的 API。在 21 世纪头十年中期，随着越来越多的 API 开始提供，被 SOAP 的复杂性激怒的软件开发者随之集体迁移。

SOAP 遭到了这群人的蔑视，Rails 之父 <ruby> 戴维·海涅迈尔·汉森 <rt>  David Heinemeier Hansson </rt></ruby>（LCTT 译注：译自其所著的《重来》的中文版的作者译名）曾经评论：“我们感觉 SOAP 过于复杂了，它已经被企业人员接管。而当这一切发生的时候，通常没有什么好结果。”   [7]  始于这一标志性的评论，Ruby-on-Rails 于 2007 年放弃了对 SOAP 的支持。“企业人员”总是希望所有内容都被正式指定，反对者认为这是浪费时间。

如果反对者不再继续使用 SOAP，他们仍然需要一些标准化的方式来进行工作。由于所有人都在使用 HTTP，而且代理与缓存的所有支持，每个人都至少会继续使用 HTTP 作为传输层，因此最简单的解决方案就是依赖 HTTP 的现有语义。这正是他们所做的工作。他们曾经称之为：<ruby> 去它的，重载 HTTP <rt>  Fuck It, Overload HTTP </rt></ruby>（FIOH）。这会是一个准确的名称，任何曾经试图决定业务逻辑错误需要返回什么 HTTP 状态码的人都能证明这一点。但是在所有的 SOAP 正式规范工作的映衬下，这显得鲁莽而乏味。

幸运的是，出现了这篇由 HTTP/1.1 规范的共同作者创作的博士论文。这篇博士论文与扩展 HTTP 有某种模糊的联系，并给予了 FIOH 一个具有学术体面的外表。因此 REST 非常适合用来掩饰其实仅仅是 FIOH 的东西。

我并不是说事情就是这样发生的，也不是说在不敬业的创业者中确实存在着盗用 REST 的阴谋，但是这个故事有助于我理解，在菲尔丁的博士论文根本就不是讨论网络服务 API 的情况下，REST 是如何成为用于网络服务 API 的架构模型的。采用 REST 的约束存在一些效果，尤其是对于那些面向公众的需要跨越组织边界的 API 来说。这些 API 通常会从 REST 的“统一接口”中受益。这应该是 REST 起初在构建网络 API 时被提及的核心原因。但是，想象一下一种叫做 “FIOH” 的独立方法，它借用 “REST” 的名字只是为了营销，这有助于我解释我们今天所知道的 <ruby> REST 式 <rt>  RESTful </rt></ruby> API 与菲尔丁最初描述的 REST 的架构风格之间的诸多差异。

举例而言，REST 纯粹主义者经常抱怨，那些所谓 RESTful API 实际并不是 REST API，因为它们根本就没有使用 <ruby> 超文本作为应用程序状态引擎 <rt>  Hypermedia as The Engine of Application State </rt></ruby>（HATEOAS）。菲尔丁本人也做出过 [这样的批评](https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven)。根据菲尔丁的观点，一个真正的 REST API 应当允许你通过跟随链接实现从一个基础端点访问所有的端点。如果你认为这些人的确在试图构建 RESTful API，那么存在一个明显的疏漏 —— 使用超文本作为应用程序状态引擎（HATEOAS）的确是菲尔丁最初提出的 REST 概念的基础，尤其是考虑到“描述性状态迁移（REST）”中的“状态迁移（ST）”意指使用资源之间的超链接进行状态机的导航（而不是像很多人所相信的那样通过线路传输资源状态）   [8] 。但是你试想一下，如果每个人都只是在构建 FIOH 的 API，并明里暗里的将之作为 REST API 宣传，或者更诚实一点说是作为 “RESTful” API 宣传，那么自然使用超文本作为应用程序状态引擎（HATEOAS）也就不重要了。

类似的，你可能会感到惊讶：尽管软件开发者喜欢不断地争论使用 `PUT` 方法还是使用 `PATCH` 方法来更新资源更加 RESTful，菲尔丁的博士论文却没有讨论哪个 HTTP 的操作方法应该映射到增删改查（CURD）操作。在 HTTP 操作与 CURD 操作之间建立一个标准的映射表是有用的，但是这一映射表是 FIOH 的一部分而不是 REST 的一部分。

这就是为什么，与其说没有人理解 REST，不如说我们应该认为 “REST” 这一术语是被误用了。REST API 这一现代概念与菲尔丁的 REST 架构之间存在历史联系，但事实上它们是两个不同的概念。历史联系适合作为确定何时构建 RESTful API 的指引而留在心底。你的 API 需要像 HTTP 那样跨越组织和政府边界吗？如果是的话，那么构建具有统一的可预测的接口的 RESTful API 可能是正确的方式。如果不是的话，你最好记住，菲尔丁更倾向于形式服从功能。或许类似 GraphQL 的方案或者仅仅 JSON-RPC 更适合你试图完成的工作。

---

1. Roy Fielding. “Architectural Styles and the Design of Network-based Software Architectures,” 128. 2000. University of California, Irvine, PhD Dissertation, accessed June 28, 2020, <https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation_2up.pdf>. [↩](#fnref1)
2. Fielding, 130. [↩](#fnref2)
3. Fielding distinguishes between software architectures and software architecture “styles.” REST is an architectural style that has an instantiation in the architecture of HTTP. [↩](#fnref3)
4. Fielding, 2. [↩](#fnref4)
5. Fielding, 15. [↩](#fnref5)
6. Fielding, 82 [↩](#fnref6)
7. Paul Krill. “Ruby on Rails 2.0 released for Web Apps,” InfoWorld. Dec 7, 2007, accessed June 28, 2020, <https://www.infoworld.com/article/2648925/ruby-on-rails-2-0-released-for-web-apps.html> [↩](#fnref7)
8. Fielding, 109. [↩](#fnref8)

---

via: <https://twobithistory.org/2020/06/28/rest.html>

作者：[Two-Bit History](https://twobithistory.org) 选题：[lujun9972](https://github.com/lujun9972) 译者：[CanYellow](https://github.com/CanYellow) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


终端基础：在 Linux 中创建文件

Summary: 现在让我们学习如何在 Linux 命令行中创建文件。

现在让我们学习如何在 Linux 命令行中创建文件。

![](/data/attachment/album/202303/20/161045uuejvexqrfrurkwn.jpg)

到目前为止，在这个终端基础系列中，你已经学会了：

* [更改目录](https://itsfoss.com/change-directories/)
* [创建新目录](https://itsfoss.com/make-directories/)
* [列出目录内容](https://itsfoss.com/list-directory-content/)

现在让我们学习如何在 Linux 命令行中创建文件。我将简要讨论向文件添加内容。但是，稍后将介绍有关编辑文本文件的详细信息。

### 使用 touch 命令创建一个新的空文件

使用 `touch` 命令非常简单。

```
touch filename

```

切换到你的主目录并创建一个名为 `practice_files` 的新目录，然后切换到该目录：

```
mkdir practice_files && cd practice_files

```

>
> ? `&&` 是一种组合两个命令的方法。只有当第一个命令执行成功时，第二个命令才会运行。
>
>
>

现在，创建一个名为 `new_file` 的新文件：

```
touch new_file

```

就是这样。你刚刚创建了一个新的空文件。

列出目录内容并使用 `ls -l` 命令检查文件的属性。

![Using touch command to create new files](/data/attachment/album/202303/20/161107junjqjkc1vrkvkcc.svg)

>
> ? `touch` 命令的最初目的是“触摸”文件并更改其时间戳。如果提供的文件不存在，它会创建一个具有该名称的新文件。
>
>
>

### 使用 echo 命令创建一个新文件

很久以前我就应该向你介绍 `echo` 命令。迟到总比不到好。`echo` 命令显示你提供给它的任何内容。因此得名“回声”。

```
echo Hello World

```

你可以使用重定向并将输出路由到文件。因此在此过程中创建一个新文件：

```
echo "Hello World" >> other_new_file

```

这样，你将创建一个名为 `other_new_file` 的新文件，其中包含文本 `Hello World`。

![Using echo command to create new file](/data/attachment/album/202303/20/161108e7t5ezule5r3lebl.svg)

请记住，如果提供的文件已经存在，使用 `>>` 重定向，你将向文件添加一个新行。你也可以使用 `>` 重定向，但它会替换文件的现有内容。

更多关于重定向的信息可以在下面的教程中找到。

>
> **[解释：Linux 中的输入、输出和错误重定向](https://linuxhandbook.com/redirection-linux/?ref=its-foss)**
>
>
>

### 使用 cat 命令创建新文件

`cat` 命令的最初目的是连接文件。但是，它主要用于显示文件的内容。

它还可以使用选项创建新文件并添加内容。为此，你可以使用相同的 `>` 和 `>>` 重定向。

```
cat >> another_file

```

但是这个将创建一个新文件并允许你向其中添加一些文本。添加文本是可选的。**你可以使用 `Ctrl+d` 键退出 `cat` 输入模式。**

![Using cat command to create new file](/data/attachment/album/202303/20/161109ejcfqrjecuttteb9.svg)

同样，附加模式 `>>` 在文件内容的末尾添加新文本，而覆盖模式 `>` 用新内容替换现有内容。

>
> ? 使用 `ls -l` 长列表显示并注意时间戳。现在 `touch` 文件：
>
>
>

```
touch other_new_file

```

你看到时间戳的区别了吗？

### 测试你的知识

你已经了解了如何创建新文件。这里有一些简单的练习来练习你刚刚学到的东西。它也包括前几章的一些内容。

* 使用 `touch` 命令创建三个新文件，分别命名为 `file1`、`file2` 和 `file3`。提示：你不需要运行 `touch` 三次。
* 创建一个名为 `files` 的目录，并在其中创建一个名为 `my_file` 的文件。
* 使用 `cat` 命令创建一个名为 `your_file` 的文件，并在其中添加以下文本 “This is your file”。
* 使用 `echo` 命令将新行 “This is our file” 添加到 `your_file`。
* 以相反的时间顺序显示所有文件（请参阅第 3 篇）。现在使用 `touch` 命令修改 `file2` 和 `file3` 的时间戳。现在再次按时间倒序显示内容。

这很有趣。你正在取得很好的进步。你已在本章中学会了创建新文件。接下来，你将学习如何查看文件的内容。

---

via: <https://itsfoss.com/create-files/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #946 Mastodon 用户数突破一千万

Summary:
? Mastodon 用户数突破一千万
? Web3 基础设施基金会于香港成立
? AWS 发布 Amazon Linux 2023
»
»

一旦用户量猛增。往往意味着快被封了。。。

![](/data/attachment/album/202303/20/193847mrob1whorg1b6b69.jpg)

![](/data/attachment/album/202303/20/193928sxgo99hxg9ddex9d.jpg)

### Mastodon 用户数突破一千万

在马斯克收购 Twitter 前，Mastodon 有大约 50 万活跃用户。在马斯克一系列“神操作”之后，Mastodon 在 11 月份涌入了大量用户，高峰时每天新增逾 13 万用户。如今 Mastodon 的活跃度略有下降，每天能增加 4.5 万左右的用户，它的用户数目前刚刚超过一千万。顺便说一句，马斯克之前曾承诺在二月底开源 Twitter 的推荐算法，最新的 [说法](https://news.slashdot.org/story/23/03/18/1515211/elon-musk-says-twitter-will-open-source-its-recommendation-code-on-march-31) 是，他将在 3 月 31 日公开。

>
> **[消息来源：Mastodon](https://mastodon.social/@mastodonusercount/110051957865629817)**
>
>
>

>
> 老王点评：Mastodon 还是有些不足，期待随着用户数量增加，可以更加完善起来。
>
>
>

![](/data/attachment/album/202303/20/193914f0bbkp00d0nv5yx0.jpg)

### Web3 基础设施基金会于香港成立

Web3 基础设施的技術涉及共识算法、联邦化、零知识证明、基于中继的协议、去中心化身份认证、可信计算、机密计算、操作系統运行时安全、软硬件供应链安全、区块链等多个领域。Web3 基础设施基金会于 2 月在香港成立，旨在推进 Web3 进程设施生态的发展。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=74436)**
>
>
>

>
> 老王点评：如果感觉 Web3 还距离较远，那其实是基础设施尚未发展成熟。这就如同近些年的互联网和 AI 等领域的发展，本质上都是基础设施进一步发展带来的。
>
>
>

![](/data/attachment/album/202303/20/193903ps9jle2vzd966kl1.png)

### AWS 发布 Amazon Linux 2023

自 2010 年以来，AWS 就提供了为云计算环境优化的 Linux 发行版，Amazon Linux 是 AWS 上使用最多的 Linux 发行版。本周他们宣布了其第三代版本：Amazon Linux 2023。AWS 称，在 Amazon Linux 2023 上部署工作负载有三大好处：“高安全标准、可预测的生命周期和一致的更新体验。”有趣的是，Amazon Linux 基于 Fedora Linux，但并非基于某个特定版本，而是包括了来自 Fedora 34、35 和 36 等多个版本的组件，并对一些组件进行了修改，其他组件与 CentOS Stream 9 中的组件更接近，或独立开发。除了 Fedora 的所提供的内核外，Amazon Linux 还提供了内核社区的其它长期支持内核。

>
> **[消息来源：AWS](https://aws.amazon.com/cn/blogs/aws/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/)**
>
>
>

>
> 老王点评：每个云厂商都有个自己的 Linux 发行版，但是要是能不仅仅局限于自己的云，那就比较成功了。
>
>
>


NixOS 系列 #3：在 NixOS 中安装和删除软件包

Summary: NixOS 中的打包系统是它最强大的地方。

NixOS 中的打包系统是它最强大的地方。

![](/data/attachment/album/202303/21/090913cnq91ob2hn9b2qbh.jpg)

NixOS 中的打包系统是它最强大的地方。Nix 软件包管理器使用的语法与 `apt`、`dnf` 和其他软件包管理器大不相同。

这也是 [人们应该尝试使用 NixOS 的原因之一](/article-15606-1.html)。

在本指南中，我将分享两种在 NixOS 上安装和删除软件包的方法：

* 使用 Nix 软件包管理器
* 使用 `configuration.nix` 配置文件

>
> ⚠ 使用 Nix 软件包管理器，你只能安装软件包，而不能安装 OpenSSH 或 Plex 服务器等服务。对于服务的安装，你必须使用 Nix 配置文件。
>
>
>

要安装任何软件包，必须知道它的确切名称，为此，我将从如何在 NixOS 中搜索软件包开始。

### 搜索软件包

要寻找软件包，你可以使用它的 [网页搜索](https://search.nixos.org/packages?ref=its-foss)。

你可以使用如下步骤：

* 在搜索栏中输入软件包的名称
* 选择适当的软件包（从给出的描述中决定）
* 点击 “nix-env” 标签页
* 复制 NixOS 命令（第一条）

例如，如果我想要 `librewolf` 包，我将执行以下操作：

![使用 Nix 软件包管理器的网络搜索寻找软件包](/data/attachment/album/202303/21/090925pbojm11fqodvf8ob.png)

你也可以通过终端做同样的事情。

要使用终端搜索软件包，你可以按照给定的命令语法进行：

```
nix-env -qaP --description [软件包名称]

```

例如，在这里，我搜索了 `librewolf`：

![使用终端搜索 NixOS 中的软件包](/data/attachment/album/202303/21/090925ed5v09vrutk95gxg.png)

你必须复制输出的第一行，因为那是你需要安装的软件包的名称。

在这里它是 `nixos.librewolf`。

是的，它听起来可能没有像使用 [APT](https://itsfoss.com/apt-command-guide/) 或 DNF 时软件包名字那么方便。但是，我认为这并不是大问题。

一些妥协或许会换来一些好处？

### 在 NixOS 中安装一个软件包

要安装一个软件包，你所要做的就是使用以下命令语法：

```
nix-env -iA [软件包名称]

```

而且，如果你使用网络搜索来寻找软件包，你就已经有了安装所需的确切命令。

所以，假设我想安装 `librewolf'，我将使用以下命令：

```
nix-env -iA nixos.librewolf

```

如果你想进行全系统的安装（让每个用户都能使用这个包），用 `sudo` 执行安装命令：

```
sudo nix-env -iA nixos.librewolf

```

就是这样！你将很快安装好你喜欢的软件包。

### 在 NixOS 中卸载一个软件包

要删除一个软件包，你可以参考下面的命令语法：

```
nix-env --uninstall [软件包名称]

```

因此，如果我必须删除 `librewolf` 包，我必须使用以下命令：

```
nix-env --uninstall librewolf

```

如果你仔细注意，我使用了 `librewolf` 而不是 `nixos.librewolf` 来安装。

这意味着你在删除软件包时要跳过 `nixos` 部分，这使事情变得简单而快速。

### 在 NixOS 中安装服务

正如我前面提到的，你不能使用 Nix 软件包管理器来安装像 OpenSSH、Plex 服务器、[Flatpak](https://itsfoss.com/what-is-flatpak/) 等服务。

从搜索服务到安装过程，都与你上面看到的不同。

所以让我先说说如何 **搜索服务**。

* 要搜索服务，请前往 Nix 软件包搜索 [网页](https://search.nixos.org/packages?ref=its-foss)
* 选择 “<ruby> NixOS 选项 <rt>  NixOS options </rt></ruby>”（页面顶部菜单行的第三个选项）
* 输入你要找的服务的名称
* 复制服务的名称

例如，在这里，我正在搜索 OpenSSH 服务。

![搜索 NixOS 中的 OpenSSH 服务](/data/attachment/album/202303/21/090925hki9gdkdiwad7aiz.png)

一旦你找到了这个名字，用下面的命令打开 `configuration.nix` 文件：

```
sudo nano /etc/nixos/configuration.nix

```

并在行末添加服务的名称（在 `}` 之前），如下：

```
[service_name] = true;

```

由于 **我想启用 OpenSSH**，我将添加以下内容：

```
services.openssh.enable = true;

```

![在 NixOS 上启用 OpenSSH](/data/attachment/album/202303/21/090926grv6io9frqc1681i.png)

一旦你在配置文件中添加了服务，[保存修改并退出 Nano](https://linuxhandbook.com/nano-save-exit/?ref=its-foss) 文本编辑器。

要启用该服务，请重建配置文件，并使用以下命令切换到所做的更改：

```
sudo nixos-rebuild switch

```

这就行了，你已经启用了该服务。

### 从 NixOS 卸载服务

要卸载一个服务，你所要做的就是在 `configuration.nix` 文件中删除或注释该服务的一行。

因此，首先，用以下命令打开配置文件：

```
sudo nano /etc/nixos/configuration.nix

```

寻找服务，并删除这一行或用 `#` 注释掉：

![从 NixOS 删除服务](/data/attachment/album/202303/21/090927isbibbsbub6i6wqp.png)

通过添加注释 `#`，我忽略了 OpenSSH 服务的加载，因为我不再需要它在我的系统上。

保存修改并退出文本编辑器。

最后，重建配置文件并进行切换：

```
sudo nixos-rebuild switch

```

### 使用 Nix 配置文件安装软件包

配置文件可以让你 **方便地一次性管理软件包**。

要使用 Nix 配置文件安装软件包，你必须在配置文件中输入软件包的名称、重建，然后切换到配置文件，就可以了。

首先，打开 `configuration.nix` 文件。

```
sudo nano /etc/nixos/configuration.nix

```

如果你想 **为一个特定的登录用户安装软件包**，将软件包的名称添加到用户的配置文件中。

用户配置文件看起来像这样：

```
users.users.sagar = {
    isNormalUser = true;
    description = "Sagar";
    extraGroups = [ "networkmanager" "wheel" ];
    packages = with pkgs; [
      firefox
    ];
  };

```

当然，它将显示你的用户名而不是 `sagar`。

你应该使用如下语法来添加软件包的名称：

```
packages = with pkgs; [
  软件包名称
  ];

```

所以我们假设我也想安装 `Thunderbird`，那么我将添加它的名字，如下所示：

![使用 Nix 配置文件在 NixOS 中安装一个包](/data/attachment/album/202303/21/090927x0z6dmkij406688k.png)

你必须在方括号内添加所有的软件包名称，不要用逗号。它必须像截图中描述的那样一个软件一个新的行。

但是如果你想在整个系统中安装这个包，那么你必须在 `environment.systemPackages` 下添加包的名字，比如：

```
environment.systemPackages = with pkgs; [
  软件包名称
];

```

![使用 Nix 配置文件在 NixOS 中全系统安装软件包](/data/attachment/album/202303/21/090927txnmz2rex2pehn1x.png)

一旦你完成了在系统配置文件或用户配置文件，甚至两者中添加所需软件包的名称，你将需要按照同样的命令来完成安装：

```
sudo nixos-rebuild switch

```

这样就可以了！

### 使用 Nix 配置文件删除软件包

要删除软件包，你所要做的就是按照给定的简单步骤进行：

* 打开 Nix 配置文件
* 删除或注释掉软件包的名称
* 重新构建配置并进行切换

所以，让我们从第一步开始（打开配置文件）：

```
sudo nano /etc/nixos/configuration.nix

```

接下来，注释掉用户配置文件或系统配置文件中的包的名称：

![在 NixOS 上使用 Nix 配置文件删除包](/data/attachment/album/202303/21/090928tnbnm7qmppiibiz7.png)

保存更改并退出配置文件。

最后，重建配置文件，并做一个切换来删除包：

```
sudo nixos-rebuild switch

```

这是这样！

>
> ? 目前，还没有官方的 GUI 工具来帮助你安装/删除软件包。你可能会发现一些由社区开发的项目，如 [nix-gui](https://github.com/nix-gui/nix-gui?ref=its-foss) 和 [nix42b](https://gitlab.com/juliendehos/nix42b?ref=its-foss)，但它们不再被维护或仅仅处于早期开发阶段。
>
>
>

### 接下来...

我希望你喜欢阅读 NixOS 系列，就像我写它一样。

在下一篇中，我将强调一些在你安装 NixOS 后需要马上做的重要事情。

如果你认为我遗漏了什么或有其他建议，请在评论中告诉我。

---

via: <https://itsfoss.com/nixos-package-management/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed/) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


我是如何毁掉我的树莓派的

Summary: 多测量几次总比测量一次好。我掉到坑里，希望你可以不用。

这是个tp的广告吗？

多测量几次总比测量一次好。我掉到坑里，希望你可以不用。

![](/data/attachment/album/202303/21/154709mhtffmtaze85utjb.jpg)

>
> 多测量几次总比测量一次好。我掉到坑里，希望你可以不用。
>
>
>

我想写一篇文章来演示“如何使用树莓派实现莫某的自动化”，或围绕树莓派的其他一些有趣、好奇或有用的应用。正如你可能从标题中意识到的那样，我不能再提供这样的文章了，因为我毁了我心爱的树莓派。

树莓派是每个技术爱好者办公桌上的标准设备。因此，大量教程和文章告诉你可以用它做什么。这篇文章反而涵盖了阴暗面：我描述了你最好不要做的事情！

### 电缆颜色

在谈到实际的破坏点之前，我想提供一些背景。在房屋内外进行电气工作时，你必须处理不同颜色的电缆。在德国，每栋房子都连接到三相交流电网，你通常会发现以下电缆颜色：

* 零线：蓝色
* （PE）地线：黄绿色
* （L1）火线 1：棕色
* （L2）火线 2：黑色
* （L3）火线 3：灰色

例如，给灯接线时，你接零线（N，蓝色）和火线（L，有 1/3 的机会是棕色），它们之间的电压为 230V 交流电。

### 连接树莓派

今年早些时候，我写了一篇关于 [OpenWrt，家用路由器固件的开源替代品](https://opensource.com/article/22/7/openwrt-open-source-firmware) 的文章。在文章中，我使用了 TP-link 路由器设备。但是，最初的计划是使用我的树莓派 4。

![OpenWrt and Raspberry Pi comparison](/data/attachment/album/202303/21/154541e04jty5jqm1b31k1.jpg)

我的想法是构建一个旅行路由器，我可以将其安装在我的大篷车中以改善露营地的互联网连接（我是那种离不开互联网的露营者）。为此，我在我的树莓派中添加了一个单独的 USB 无线网卡以连接第二个 Wifi 天线并安装了 [OpenWrt](https://openwrt.org/)。此外，我添加了一个 12V 至 5V DC/DC 转换器来连接大篷车中的 12V 接线。我用桌上的 12V 汽车电池测试了这个设置，它按预期工作。一切设置和配置完成后，我开始将其安装到我的大篷车中。

在我的大篷车里，我找到了一根蓝色和一根棕色的电线，将它与 12V 至 5V DC/DC 转换器相连，将保险丝放回，然后……

![DC converter device](/data/attachment/album/202303/21/154547q5cfl6hql2ml2q26.jpg)

这个芯片，自己爆开了，它才是真正的降压变压器。我非常自信地认为蓝线是在 0V 电位上，棕色的是在 12V 上，我甚至没有测量。后来我了解到，蓝色的线是在 12V 上，而棕色的线是接地（这在汽车电子产品中很常见）。

### 总结

自从这次事故后，我的树莓派就再也启动不起来了。由于树莓派的价格飞涨，我不得不寻找替代品。幸运的是，我遇到了 TP-Link 旅行路由器，它也可以运行 Open-WRT 并且可以令人满意地完成它的工作。

最后：多测量几次总比测量一次好。

---

via: <https://opensource.com/article/23/3/how-i-destroyed-my-raspberry-pi>

作者：[Stephan Avenwedde](https://opensource.com/users/hansic99) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #947 以众包的方式在家用电脑上运行大语言模型

Summary:
? 以众包的方式在家用电脑上运行大语言模型
? 谷歌将某多多应用标记为恶意程序
? 生成式人工智能的下一个领域是视频
»
»

![](/data/attachment/album/202303/21/182722ckhmzt1hepzb3bwr.jpg)

![](/data/attachment/album/202303/21/182735qn7xdzxghpjqq36n.jpg)

### 以众包的方式在家用电脑上运行大语言模型

BigScience 项目最近公布了 BLOOM，这是一个支持 46 种自然语言和 13 种计算机语言的 1760 亿个参数的模型，参数数量和性能与 GPT-3 相当。但它需要超过 350GB 的加速器内存，甚至需要更多的优化调整。他们开发了名为 [Petal](https://petals.ml/) 的框架，可以以众包的方式在家用电脑上运行大语言模型。参与者可以运行客户端和服务器端，可以调整模型，子模块在训练后可以发布在模型中心，以便其他人可以利用它们进行推理或额外的训练。

>
> **[消息来源：Mark Tech Post](https://www.marktechpost.com/2023/03/15/meet-petals-an-open-source-artificial-intelligence-ai-system-that-can-run-100b-language-models-at-home-bit-torrent-style/)**
>
>
>

>
> 老王点评：果然这种众包式的 AI 模型出现了，这可以有效避免 AI 被垄断。
>
>
>

![](/data/attachment/album/202303/21/182746jgaj9m6agxntzxbo.jpg)

### 谷歌将某多多应用标记为恶意程序

谷歌周一出于安全理由从其官方应用商店下架了某多多应用，将其标记为恶意程序。谷歌说，“这个应用的非谷歌商店版本被发现含有恶意软件，已经通过谷歌商店保护进行防范”。安卓内的安全机制将阻止用户安装它。对于已经安装的该应用的用户，谷歌建议用户卸载。当然，由于众所周知的原因，该应用主要出现在谷歌应用商店之外的厂商商店中。在这之前，多个中国安全研究人员披露该应用包含有恶意功能，居然利用零日漏洞提权来阻止卸载并监视用户。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/03/20/google-flags-apps-made-by-popular-chinese-e-commerce-giant-as-malware/)**
>
>
>

>
> 老王点评：这种眼睛里面不揉沙子的，还得是谷歌。
>
>
>

![](/data/attachment/album/202303/21/182758g1zk5fp67tfyztd5.jpg)

### 生成式人工智能的下一个领域是视频

几个月来，像 DALL-E 和稳定扩散这样的服务一直在创造美丽的、引人注目的、有时令人不安的图片。现在，一家名为 Runway AI 的初创公司正在使用 AI 生成视频，该系统可以通过用户的几句话提示生成简短的视频片段。目前已经可以在几分钟内生成几秒钟长度的视频。

>
> **[消息来源：彭博社](https://www.bloomberg.com/news/articles/2023-03-20/generative-ai-s-next-frontier-is-video)**
>
>
>

>
> 老王点评：逼真的图像已经可以生成，那生成视频所需的就是更多的资源。将来全 AI 创作的视频、电影，指日可待。
>
>
>


如何在 Linux 中使用旧相机作为网络摄像头

![](/data/attachment/album/202303/21/233633z1qxdoq1shrx1xmc.jpg)

>
> 我用 gphoto2 给我的旧单反相机带来了新的生命，把它变成了 Linux 电脑的网络摄像头。
>
>
>

今年，在我基本上放弃了 MacBook，转而使用 NixOS 机器之后，我开始在与人进行视频通话时被要求“打开摄像头”。这是一个问题，因为我没有网络摄像头。我考虑购买一个，但后来我意识到我有一台完好无损的 2008 年产的佳能 EOS Rebel XS 数码单反相机放在书架上。这台相机有一个 mini-USB 接口，所以我自然而然地思考：一台数码单反相机、一个 mini-USB 接口和一台台式电脑，是否意味着我能拥有一个网络摄像头？

只有一个问题。我的佳能 EOS Rebel XS 不能录制视频。它可以拍摄一些漂亮的照片，仅此而已。所以这结束了？

还是有别的办法？

恰好有一个叫做 [gphoto2](http://gphoto.org/) 的神奇的开源软件。一旦安装，它允许你从计算机控制各种支持的相机，并拍摄照片和视频。

### 支持的相机

首先，了解你的设备是否得到支持：

```
$ gphoto2 --list-cameras

```

### 拍摄图像

你可以用它拍照：

```
$ gphoto2 --capture-image-and-download

```

快门触发，图像会保存到你当前的工作目录中。

### 录制视频

我意识到了这里的潜力，所以尽管我的相机没有视频功能，我还是决定尝试 `gphoto2 --capture-movie` 命令。不知怎么，尽管我的相机不支持视频功能，`gphoto2` 仍然能够生成一个 MJPEG 文件！

在我的相机上，我需要将其置于“实时预览”模式下，然后 `gphoto2` 才能录制视频。这包括将相机设置为纵向模式，然后按下 “<ruby> 设置 <rt>  Set </rt></ruby>” 按钮，使取景器关闭，相机屏幕显示图像。不幸的是，这还不足以将其用作网络摄像头。它仍然需要分配一个视频设备，例如 `/dev/video0`。

### 安装 ffmpeg 和 v4l2loopback

毫不奇怪，有一个开源的解决方案来解决这个问题。首先，使用你的包管理器安装 `gphoto2`、`ffmpeg` 和 `mpv`。例如，在 Fedora 、CentOS 、Mageia 和类似的 Linux 发行版上：

```
$ sudo dnf install gphoto2 ffmpeg mpv

```

在 Debian、Linux Mint 及其类似发行版:

```
$ sudo apt install gphoto2 ffmpeg mpv

```

我使用的是 NixOS，这是我的配置文件：

```
# configuration.nix
...
environment.systemPackages = with pkgs; [
  ffmpeg
  gphoto2
  mpv
...
]
```

创建虚拟视频设备需要使用 `v4l2loopback` Linux 内核模块。在撰写本文时，该功能未包含在主线内核中，因此你需要自己下载和编译它：

```
$ git clone https://github.com/umlaeute/v4l2loopback
$ cd v4l2loopback
$ make
$ sudo make install
$ sudo depmod -a

```

如果你像我一样使用 NixOS ，你可以在 `configuration.nix` 中添加额外的模块包：

```
[...]
boot.extraModulePackages = with config.boot.kernelPackages;
[ v4l2loopback.out ];
boot.kernelModules = [
  "v4l2loopback"
];
boot.extraModprobeConfig = ''
  options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
'';
[...]

```

在 NixOS 上, 运行 `sudo nixos-rebuild switch`，然后重启。

### 创建一个视频设备

假设你的计算机当前没有 `/dev/video` 设备，你可以借助 `v4l2loopback` 在需要时创建一个。

运行以下命令，将 `gphoto2` 中的数据发送到 `ffmpeg`，使用设备如 `/dev/video0` 设备：

```
$ gphoto2 --stdout --capture-movie |
 ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0

```

你得到的输出是这样的：

```
ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11.3.0 (GCC)
  configuration: --disable-static ...
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Capturing preview frames as movie to 'stdout'. Press Ctrl-C to abort.[mjpeg @ 0x1dd0380] Format mjpeg detected only with low score of 25, misdetection possible!
Input #0, mjpeg, from 'pipe:':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 768x512 ...
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> rawvideo (native))[swscaler @ 0x1e27340] deprecated pixel format used, make sure you did set range correctly
Output #0, video4linux2,v4l2, to '/dev/video0':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: rawvideo (I420 / 0x30323449) ...
    Metadata:
      encoder         : Lavc58.134.100 rawvideoframe=  289 fps= 23 q=-0.0 size=N/A time=00:00:11.56 bitrate=N/A speed=0.907x

```

要查看来自网络摄像头的视频，请使用 `mpv` 命令：

```
$ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed

```

![Streaming a live feed from the webcam](/data/attachment/album/202303/21/233414pjm6que6y6zj6mlu.jpg)

### 自动启动你的网络摄像头

每次想使用网络摄像头时都需要执行一次命令有点麻烦。幸运的是，你可以在启动时自动运行此命令。我将其实现为一个 `systemd` 服务：

```
# configuration.nix
...
  systemd.services.webcam = {
    enable = true;
    script = ''
      ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
        ${pkgs.ffmpeg}/bin/ffmpeg -i - \
            -vcodec rawvideo -pix_fmt yuv420p -f v4l2  /dev/video0
    '';
wantedBy = [ "multi-user.target" ];
  };
...

```

在 NixOS 上，运行 `sudo nixos-rebuild switch`，然后重新启动你的计算机。你的网络摄像头已经开启并处于活动状态。

要检查是否存在任何问题，可以使用 `systemctl status webcam` 命令。它会告诉你服务最后一次运行的时间，并提供其以前输出的日志。这对于调试非常有用。

### 迭代以使其变得更好

止步于此也许很诱人。但是，考虑到当前的全球危机，我们可能需要思考是否有必要一直开着网络摄像头。这让我感到不太理想，原因如下：

* 这浪费电。
* 这类事情涉及隐私问题。

我的摄像头有一个镜头盖，所以说实话，第二个原因并不真的让我感到困扰。当我不使用网络摄像头时，我总是可以把镜头盖上。然而，让一个耗电量大的单反相机整天开着（更不用说需要解码视频所需的 CPU 开销），对我的电费并没有任何好处。

理想情况是：

* 我一直把相机插在电脑上，但是关闭的。
* 当我想使用网络摄像头时，我按下相机的电源按钮将其打开。
* 我的计算机会检测到相机并启动 systemd 服务。
* 使用网络摄像头完成后，我再次将其关闭。

为了实现这一点，你需要使用一个自定义的 udev 规则。

udev 规则可以告诉你的计算机，当它发现某个设备已经可用时执行某个任务。这可以是外部硬盘甚至是非 USB 设备。在这种情况下，你需要通过其 USB 连接识别相机。

首先，指定 udev 规则被触发时要运行的命令。你可以用一个 shell 脚本来完成（`systemctl restart webcam` 应该可以工作）。我运行的是 NixOS，所以我只需要创建一个派生包（一个 Nix 包），它会重新启动 systemd 服务：

```
# start-webcam.nix
with import <nixpkgs> { };
writeShellScriptBin "start-webcam" ''
  systemctl restart webcam
  # debugging example
  # echo "hello" &> /home/tom/myfile.txt
  # If myfile.txt gets created then we know the udev rule has triggered properly''

```

接下来，实际定义 udev 规则。查找摄像头的设备和厂商 ID。使用 `lsusb` 命令可以完成此操作。该命令可能已经安装在你的发行版上，但我不经常使用它，因此我只需要根据需要使用 `nix-shell` 安装它：

```
$ nix-shell -p usbutils

```

无论你的计算机上已经安装了它，还是刚刚安装，请运行 `lsusb` ：

```
$ lsusb
Bus 002 Device 008: ID 04a9:317b Canon, Inc. Canon Digital Camera[...]

```

在此输出中，厂商 ID 为 `04a9`，设备 ID 为 `317b`。这已足以创建 udev 规则：

```
ACTION=="add", SUBSYSTEM=="usb",
ATTR{idVendor}=="04a9",
ATTR{idProduct}=="317b",
RUN+="/usr/local/bin/start-webcam.sh"

```

或者，如果你使用的是 NixOS：

```
# configuration.nix[...]let
  startWebcam = import ./start-webcam.nix;[...]
services.udev.extraRules = ''
  ACTION=="add",  \
  SUBSYSTEM=="usb", \
  ATTR{idVendor}=="04a9", \
  ATTR{idProduct}=="317b",  \
  RUN+="${startWebcam}/bin/start-webcam"'';[...]

```

最后，在你的 `start-webcam` systemd 服务中删除 `wantedBy = ["multi-user.target"];` 这一行。（如果保留它，则无论相机是否开启，该服务都会在下次重启时自动启动。）

### 重复使用旧技术

我希望这篇文章能让你在放弃一些旧技术之前三思而后行。Linux 可以为技术注入活力，无论是你的电脑还是数码相机或其他外围设备等简单的东西。

---

via: <https://opensource.com/article/22/12/old-camera-webcam-linux>

作者：[Tom Oliver](https://opensource.com/users/tomoliver) 选题：[lkxed](https://github.com/lkxed) 译者：[Pabloxllwe](https://github.com/Pabloxllwe) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Postgres DevOps 数据库管理员的日常

Summary: 数据库管理员（DBA）的职责是什么？

数据库管理员（DBA）的职责是什么？

![](/data/attachment/album/202303/22/075232pgphrt3nuhp1nu7r.jpg)

>
> 数据库管理员（DBA）的职责是什么？
>
>
>

在依赖 Postgres 作为主要数据库管理系统的现代 IT 组织中，Postgres DevOps DBA 发挥着关键作用。Postgres DevOps DBA 的角色涉及许多职责、技能和任务。其中一些包括：管理数据库设计和架构、基础设施管理、确保高可用性、安全性以及执行日常维护任务（调整、备份和恢复以及监控）。

本文总结了当今企业环境中 Postgres DevOps DBA 的常见职责和技能。

### 数据库设计和架构

Postgres DevOps DBA 的两个主要职责是数据库设计和架构。该角色必须对应用的数据存储要求和涉及的业务逻辑有更深入的了解。这些知识包括设计和创建数据库模式和表。它还意味着配置索引和其他数据库对象以优化查询性能，并选择使用正确的 Postgres 版本。该角色必须确保数据库的设计具有可扩展性和可维护性，同时考虑到未来的增长和数据保留需求。

### 性能调优

另一个关键的职责是性能调优。Postgres DevOps DBA 必须能够通过监控数据库性能指标和分析查询性能来识别和解决性能问题。该角色还必须对数据库有深入的了解，并能够对其进行配置以获得最佳性能，包括优化查询和索引、调整内存设置以及识别和解决性能瓶颈。

### 备份与恢复

备份和恢复也是职责的关键。DBA 必须对备份和恢复解决方案有深入的了解，并且必须设计和实施备份策略，以确保在数据丢失的情况下始终可以恢复数据。他们还必须验证恢复过程并实施高可用性和灾难恢复解决方案，以最大限度地减少停机时间和数据丢失。

### 安全

安全是另一个重要的职责。DBA 通过实施访问控制、加密和其他安全措施来保护数据，从而确保数据库安全。他们还必须了解最新的安全趋势和最佳实践，并加以实施以防范潜在威胁。

### 基础设施管理

基础设施管理也是一项重要职责。这些 DBA 必须管理硬件、网络和存储基础设施，并提供基础设施以支持 Postgres。他们还必须针对性能和可用性配置基础架构，并根据需要扩展基础架构以适应数据增长。

### 自动化和脚本

该角色必须能够使用 [Ansible](https://opensource.com/article/19/2/quickstart-guide-ansible)、Terraform 和 [Kubernetes](https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM) 等工具自动执行重复性任务，例如备份、监控和修补。他们还必须熟悉自动化最佳实践，以确保高效且有效地自动化任务。自动化减少了人为错误的可能性，提高了效率，并允许 DBA 专注于更复杂的任务。

### 监控和配置警报

监控数据库和基础设施并设置警报以通知他们问题非常重要。该角色还必须采取主动措施来防止停机和数据丢失，使用 Nagios、Zabbix 和 Prometheus 等监控工具来检测潜在问题。

### 合作

除了这些技术职责外，PostgreSQL DevOps DBA 还必须与其他 IT 团队（例如开发人员、运维人员和安全人员）协作，以将数据库集成到更大的 IT 生态系统中。DBA 还必须记录他们的工作，并及时了解 Postgres 和 [DevOps](https://opensource.com/article/20/12/remote-devops) 的最新趋势和最佳实践。这涉及与利益相关者合作以收集需求、确定优先级并使数据库与组织的更广泛目标保持一致。

### 总结

总之，Postgres DevOps DBA 在依赖 Postgres 作为主要数据库管理系统的现代 IT 组织中发挥着关键作用。你当前的技能和期望如何匹配此列表？作为现代数据库环境中的 DBA，你是否走在正确的道路上？

---

via: <https://opensource.com/article/23/3/postgres-devops-dba>

作者：[Doug Ortiz](https://opensource.com/users/dougortiz) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #948 俄罗斯开发者被阻止向“自由及开源软件”贡献

Summary:
? 俄罗斯开发者被阻止向“自由及开源软件”贡献
? 现代汽车承诺在汽车中保留实体按钮
? 甲骨文公司宣布推出 Java 20
»
»

俄罗斯开发者被阻止向“自由及开源软件”贡献。针对这件事。开源自由也是一个笑话，所以说一切与政治无关就是扯蛋。现在这种国际关系，哪天开源对我们关闭也是完全可能的~~~

FOSS 从来没说过与 XX 无关，ta 本来就是算是一种 XX 运动。好像很多人都把 FOSS 理解成“技术圣母”了，实际上 FOSS 的诉求是用户有使用、复制、研究、修改和分发的权利，从来没有说过维护者要无条件接纳、包容、满足用户或是提交者。Linus 本人拒绝的补丁还少吗，而且拒绝的口气大多很不好呢，不可能别的补丁就可以拒绝，某些补丁就更高贵一些不能拒绝吧，当维护者又不是当狗。维护者看提交者不顺眼，当然可以拒绝，这是维护者的权力，提交者不爽可以分叉，这是提交者的权力，用户看这种行为不爽可以不用，这是用户的权力。

很多人自己幻想出一套圣母级的开源标准，然后拿着这套标准去指责这个那个不符合开源精神，这是你的标准不是别人的标准。开源说到底就是按自己喜欢的标准公开代码而已，不是按别人喜欢的标准，又不是别人的仆人。

![](/data/attachment/album/202303/22/090238sc22rwdcp2k2fll2.jpg)

![](/data/attachment/album/202303/22/090248q5cxc9v5mqmx5m2o.jpg)

### 俄罗斯开发者被阻止向“自由及开源软件”贡献

最近有两起俄罗斯开发者被阻止贡献 FOSS 代码的事件。在 Linux 内核邮件列表上，俄罗斯芯片制造商贝加尔电子公司的 Sergey Semin 的贡献被拒绝了，“我们对接受来自贵组织生产的硬件或与之相关的补丁感到不舒服。”另外一件也是针对俄罗斯开发者的，他的 GitHub 账户已被封锁。他开发的 “一个管理和配置支持智能平台管理界面的设备的工具”，ipmitool，被标记为只读“存档”。原因是他为俄罗斯芯片制造商 Yadro 工作，该公司正在研发 RISC-V 芯片，被列入了乌克兰的战争与制裁数据库。

>
> **[消息来源：The Register](https://www.theregister.com/2023/03/21/russian_foss_contributions_blocked/)**
>
>
>

>
> 老王点评：GitHub 倒也罢了，那毕竟是一家美国公司。Linux 内核，FOSS ？！呵呵。
>
>
>

![](/data/attachment/album/202303/22/090304hwffqa8fff9ghchn.jpg)

### 现代汽车承诺在汽车中保留实体按钮

这是一个源于安全考虑的决定，现代汽车公司的设计主管说，“对我来说，与安全有关的按钮必须是一个硬键，……很容易感知和感觉到它”。但未来的情况可能会发生变化。特别是，当自动驾驶成为主流时，该公司可能会更多地考虑使用触摸控制。“当涉及到 4 级自动驾驶时，那么我们将拥有一切软键。”

>
> **[消息来源：The Drive](https://www.thedrive.com/news/hyundai-promises-to-keep-buttons-in-cars-because-touchscreen-controls-are-dangerous)**
>
>
>

>
> 老王点评：现在有些汽车你都找不到什么按键和旋钮，真当自己的软件系统万无一失吗？
>
>
>

![](/data/attachment/album/202303/22/090319blq2csciqo4uqiuu.jpg)

### 甲骨文公司宣布推出 Java 20

这个有 27 年历史的语言的最新版本包括数以千计的性能、稳定性和安全性方面的改进，并对 Java 开发工具包提出了 7 项增强建议。甲骨文公司在过去的五年中，每六个月推出一个新的 Java 版本，并说它是这个开源项目的最大贡献者，在 Java 开发组织中排名第一。Java 的开发分为六个项目，分别针对性能和功能的不同方面，如使其更加简洁和不容易出错、改善启动时间和性能、实现大规模并行等等。今年 9 月将发布的 Java 21 将是每两年一个的 LTS 版本。

>
> **[消息来源：Silicon Angle](https://siliconangle.com/2023/03/21/oracle-aims-sustain-javas-27-year-franchise-version-20-rollout/)**
>
>
>

>
> 老王点评：Java 是不错，就是被当成下金蛋的母鸡了。
>
>
>


Linux 上 5 款最好的 EPUB 阅读器

居然没有 koreader

![](/data/attachment/album/202303/22/210742rdxxnfmfxmtfxnzx.jpg)

>
> 你正在寻找 Linux 上最好的 EPUB 阅读器？这里是为你准备的最好的自由开源的 EPUB 阅读器。
>
>
>

你是一位热衷于阅读电子书的 Linux 用户吗？如果，是的，你必然知道在 Linux 发行版上的默认文档阅读器不能满足你作为一名书虫的所有要求。

EPUB 是一种广泛使用的开放电子书格式，大多数的电子书阅读器都支持。值得庆幸的是，在 Ubuntu 软件中心和其它存储库中有一些 EPUB 阅读器应用程序，你可以自由下载它们。.

但是，请记住，仅有几个好用的阅读器。并不是有很多！

在这篇文章中，我们将讨论在 Ubuntu Linux 上的最好的 EPUB 阅读器，这将增强你的阅读体验。我们也将探讨它们的特色功能和优点，以便你可以选择一个适合你的应用程序。

但是，在此之前，你认为在一个 “令人满意的” EPUB 阅读器中，应该有哪些功能呢？

### 在一款 EPUB 阅读器中所应该有的功能

* **用户界面**：一款好的 EPUB 阅读器应该有一个简单易懂的用户界面，它会使导航和自定义你的阅读体验变得简单。你并不是在阅读一本实体书，因此，对于 “实体书” 的阅读体验来说，用户界面是极其重要的！
* **自定义**：拥有自定义字体大小、字体类型、背景颜色和其它设置的能力，它们将增强你的阅读体验。
* **书架**：书架是一种很方便的特色功能，它允许你组织你的 EPUB 文件和保持追踪你的阅读进度。
* **注释**：在你的 EPUB 文件中，高亮显示、下划线和添加注释是一种很重要的特色功能，它会帮助你记住重点。
* **同步**：如果你在多台设备上阅读 EPUB 文件，同步你的阅读进度和书签是非常重要的，可以避免丢失你的追踪进度.

现在，让我们看看为 Ubuntu 和其它的 Linux 发行版提供的最好的 EPUB 阅读器，它们都涉及上述所有的特色功能。

### 在 Ubuntu 和其它 Linux 发行版上的最好的 EPUB 阅读器

#### Calibre

在这份列表上的第一款阅读器是 Calibre ，它是最好的和最完善的电子书管理解决方案。它是一款功能强大的 EPUB 阅读器，也提供电子书管理工具。它在用户中是一种流行的选择，因为它有丰富的特色功能集，包括：转换 EPUB 文件到不同的格式、编辑 EPUB 文件，甚至创建你自己的 EPUB 文件的功能。Calibre 也有一个用户友好的界面，允许你自定义你的阅读体验。

![Calibre welcome wizard](/data/attachment/album/202303/22/210955p1x7zlll7j8bc1pg.jpg)

Calibre 正在持续更新，每个月都会有大量的特色功能和增强的功能。它的开发活动是非常活跃的，它是这份列表中最好的一个。

功能摘要：

* 支持多种电子书设备（基于安卓、iOS 的设备）
* EPUB 阅读器和管理器
* 为你的电子书库评级和标记
* 从互联网获取电子书的元数据
* 从流行的新闻源处阅读新闻，并制作电子书！
* 使用自动转换器来上传电子书到 Kindle 和其它的阅读器（当然，也可以下载）
* 内置可购买电子书的浏览器

![Calibre main window](/data/attachment/album/202303/22/211003pz3bv68cd38q9dv8.jpg)

![Uploading books to Calibre](/data/attachment/album/202303/22/211011doozh1wabla14a1r.jpg)

你可以从其官方网站下载 Calibre 。或者，你可以为你的 Linux 发行版 [设置 Flatpak & Flathub](https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/) ，并单击下面的按钮（或使用命令）来安装：

>
> **[使用 Flatpak 来安装 Calibre](https://dl.flathub.org/repo/appstream/com.calibre_ebook.calibre.flatpakref)**
>
>
>

```
flatpak install com.calibre_ebook.calibre

```

针对其它的下载选项（Windows、macOS 和原生的 Linux 软件包），请访问 [这个网页](https://calibre-ebook.com/download)。

#### Foliate

我们在先前的 [最佳的 Ubuntu 应用程序（第 3 部分）](https://www.debugpoint.com/necessary-ubuntu-apps-2022/) 系列中介绍了 Foliate 。它是一款轻量现代的 EPUB 阅读器，它提供了一系列的自定义选项。它是基于 GTK4 的，并且与 GNOME 桌面环境无缝集成。它有一个平滑且易于导航的界面，并且有自定义字体大小、字体类型和行距的功能。

![Foliate main window and settings](/data/attachment/album/202303/22/211021qes75675kj5w8urw.jpg)

Foliate 也包含：一种针对夜间阅读的深色模式，一个调整内置颜色温度的选项，用以减少眼睛疲劳。

功能摘要：

* 沉浸式视图，主顶部工具条在阅读时自动隐藏
* 列入目录视图，支持从主要的电子书网站直接下载
* 多屏视图 – 双页面视图和滚动视图
* 自定义字体和行距
* 内置亮度控制，仅应用于应用程序本身！
* 阅读进度滑块
* 支持书签和注释
* 在书中搜索
* 快速字典查找

![Foliate reader view](/data/attachment/album/202303/22/211030id2j4o3ajvbb8vo2.jpg)

![Foliate library view](/data/attachment/album/202303/22/211039q9raf7zdmrna57ed.jpg)

下载 Okular 的最好方式是使用 Flatpak 来下载。针对你的系统设置 [Flatpak & Flathub](https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/) ，并使用下面的链接（或使用下面提到的命令）来安装它：

>
> **[使用 Flatpak 来安装 Foliate](https://dl.flathub.org/repo/appstream/com.github.johnfactotum.Foliate.flatpakref)**
>
>
>

```
flatpak install com.github.johnfactotum.Foliate

```

要学习更多关于 Foliate 的信息，访问官方 [网站](https://johnfactotum.github.io/foliate/)。

#### Okular

KDE 自带的文档阅读器是 Okular ，它也支持 EPUB 文件。它是一款功能丰富的应用程序，它提供了一系列自定义选项，包括：字体大小、字体类型和背景颜色。Okular 也有内置注释功能，你可以使用它来注释你的 EPUB 文件。它也支持很多文件格式：

* EPUB
* PDF
* DjVU
* 图形文件: JPEG 、PNG 、GIF 、Tiff 、WebP
* 漫画文件: CBR 和 CBZ

不过，你不能使用 Okular 来管理收藏或下载电子书。

![Okular](/data/attachment/album/202303/22/211051uyba8bz1cm1eb71b.jpg)

你可以在 Ubuntu 及其相关发行版中安装 Okular ：

```
sudo apt install okular

```

针对 Fedora 及其相关发行版：

```
sudo dnf install okular

```

如果你更喜欢 Flatpak ，将你的系统设置为 Flatpak ，并使用下面的链接（或使用下面提到的命令）来安装 Flatpak：

>
> **[使用 Flatpak 格式安装 Okular](https://dl.flathub.org/repo/appstream/org.kde.okular.flatpakref)**
>
>
>

```
flatpak install org.kde.okular

```

#### Bookworm

在这份列表上的下一个 EPUB 阅读器是 Bookwork ，在我看来，它完全被低估了。它确实是一款 elementary OS 的应用程序，但是，对于所有的 Linux 发行版来说都是可以安装的。

它有简洁的界面，并提供一系列自定义选项，包括字体大小、字体类型和背景颜色。Bookworm 也允许你将你的 EPUB 文件组织到集合中，并保持追踪你的阅读进度。

![Bookworm library view](/data/attachment/album/202303/22/211105nms3xo4ycrmzxrzx.jpg)

另外，你可以使用一个内置的标签编辑器和评分系列来轻松地管理你的 EPUB 书籍。此外，它也支持注释、搜索、章节和键盘导航。

不可缺少的是，它支持 EPUB 、MOBI 、PDF 、EB2 、CBR 和 CBZ 文件。

![Bookworm EPUB reader view](/data/attachment/album/202303/22/211117d6hztjhvu3qtuyeh.jpg)

安装是很容易的。如果你是一名 elementary OS 用户，你可以在 <ruby> 应用中心 <rt>  AppCenter </rt></ruby> 中搜索 “bookworm” 。

针对 Ubuntu 及其相关发行版，你可以使用下面的 PPA 来安装它：

```
sudo add-apt-repository ppa:bookworm-team/bookwormsudo
apt-get update
sudo apt-get install com.github.babluboy.bookworm

```

如果你更喜欢 Flatpak ，将你的系统设置为 Flathub 和 Flatpak ，并使用下面的链接来安装它：

```
flatpak install com.github.babluboy.bookworm

```

要学习更多的信息，访问官方 [网站](https://babluboy.github.io/bookworm/)。

#### FBReader

在这份最好的 EPUB 阅读器列表中最后一款应用程序是 FBReader 。在你继续阅读之前，注意：它在 2015 年以前是开源软件。但是，它现在是闭源软件，不过，有一个开发者 SDK 是可用的。

它是一款流行的多功能的 EPUB 阅读器，所有的 Linux 发行版都可以获取使用。它有一个简单且用户友好的界面，允许你自定义你的阅读体验。FBReader 也支持各种电子书格式，包括：EPUB 、MOBI 、FB2 和 HTML 。它也提供一种书架特色功能，允许你组织你的电子书和保持追踪你的阅读进度。

FBRedaer 也支持在你的设备之间云同步你的库。

![FBReader](/data/attachment/album/202303/22/211129iobbyv50dznjogbn.jpg)

在 Linux 上安装 FBReader 是有一些难度的，因为它只提供 Snap 软件包。你可以在 [针对 Snap 设置你的系统](https://www.debugpoint.com/how-to-install-and-use-snap-packages-in-ubuntu/) 后，使用 `snap` 来安装它，如下所示。

```
sudo snap install fbreader

```

要学习更多关于 FBReader 的信息，访问官方 [网站](https://fbreader.org/en)。

### 在 Linux 上的更多的 EPUB 阅读器

#### Koodo reader

它是一个相当新的自由及开源的 EPUB 阅读器，带有大量的特色功能。并且它也看起来极好。唯一的问题是，它是使用 Javascript 、HTML 和 TypeScript 构建的。因此，它不是原生的应用程序，但是它是很快的。你可能会想尝试一下。在 Linux 上，Koodo reader 提供 AppImage 、本机的 deb 和 RPM 文件。

你可以 [在这里下载](https://koodo.960960.xyz/en) ，这里是一些截屏。

![Koodo EPUB reader](/data/attachment/album/202303/22/211137z3l3v0jjl0px7zdf.jpg)

![Koodo - reader view](/data/attachment/album/202303/22/211144cquuyfp8oqpjouon.jpg)

![Koodo options](/data/attachment/album/202303/22/211150xicll7cf8is35s23.jpg)

这里还有另外的两个 EPUB 阅读器，但是，不幸的是，它们已经不再继续开发了。

* [GNOME Books](https://gitlab.gnome.org/Archive/gnome-books)
* [epub CLI reader](https://github.com/rupa/epub)

### EPUB 阅读器的对比表

为使你更容易地选择适合你所需要的 EPUB 阅读器，我们创建了一个比较表，着重强调了上述 EPUB 阅读器的关键特色功能。

| EPUB 阅读器 | 用户界面 | 自定义 | 书架 | 注释 | 同步 |
| --- | --- | --- | --- | --- | --- |
| Calibre | ✔ | ✔ | ✔ | ✔ | ✔ |
| Foliate | ✔ | ✔ | ✔ | ✔ | ❌ |
| Bookworm | ✔ | ✔ | ✔ | ❌（受限） | ❌ |
| Okular | ✔ | ✔ | ❌ | ❌（受限） | ❌ |
| FBReader | ✔ | ✔ | ✔ | ✔ | ✔ |

### 去哪里获取免费的电子书？

很多网站为你提供来自著名作者的大量漫画和小说的收藏。最好的网站是 “Project Gutenberg” 。你可以下载来自所有分类中的 60,000 多本电子书。

使用下面的链接访问网站。在你下载电子书后，你可以使用上述任意的 EPUB 阅读器来制作和享受你的个人电子书收藏。

>
> **[Project Gutenberg](https://www.gutenberg.org/)**
>
>
>

你也可以尝试精选免费电子书的 standard ebooks。

>
> **[Standard eBooks](https://standardebooks.org/ebooks)**
>
>
>

### 总结

总而言之，在 Linux 上有几个可用的 EPUB 阅读器，它们提供大量的特色功能来增强你的阅读体验。如果你正在寻找一个功能丰富的 EPUB 阅读器，Calibre 是一个极好的选择，它也可以作为一个电子书管理器工具。Foliate 和 Bookworm 是一个轻量的现代的应用程序，非常适合那些看重自定义选项的人。

我希望通过上述的比较和详细的描述，你现在可以为你自己选择最好的 EPUB 阅读器了。

---

via: <https://www.debugpoint.com/epub-readers-linux/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


用树莓派制作的问答售货机

Summary: 用树莓派取代食品售货机上的投币箱是一个天才之举。

用树莓派取代食品售货机上的投币箱是一个天才之举。

![](/data/attachment/album/202303/22/214542uba6m8d8dwbahraa.jpg)

>
> 用树莓派取代食品售货机上的投币箱是一个天才之举。
>
>
>

作为在公共图书馆工作的教育工作者，我一直在关注 [树莓派](https://opensource.com/resources/raspberry-pi) 的有趣用途。在我看来，得克萨斯州达拉斯市的<ruby> 问答售货机 <rt>  Trivia Vending Machine </rt></ruby>项目是这些神奇设备最具创意和最有趣的用途之一。使用树莓派取代食品售货机上的投币箱是 Greg Needel 和他的团队的一个天才之作。这个想法的潜在用途是深远的。请观看下面这个 [YouTube 短视频](https://www.youtube.com/watch?v=pDOhk-YAhys)，了解问答自动售货机的运行情况。

最初的问答售货机专注于科学问题，但你可以制作一个问答售货机来回答任何问题：历史、公民、文学等等。如果你鼓励学生写自己的问题，并回答对方的问题，那将是最有吸引力的用途。请考虑这样：自动售货机可以不发放食物，而是发放当地企业的优惠券。我谋生的方式之一是教吉他课，我很乐意捐出一节吉他课作为问答售货机的优惠券。然而，学生必须积累适当数量的积分才能获得我的一堂吉他课。

把你的想象力再延伸一点。是否有可能让学生解决逻辑谜题，以便从自动售货机获得食物（或优惠券）？是的，这并不难创造。也许是数独谜题、[Wordle](https://opensource.com/article/22/1/word-game-linux-command-line)、KenKen、Sokoban 或任何其他谜题。学生可以用触摸屏玩这些谜题。国际象棋怎么样？当然，学生可以通过解决象棋谜题来获得食物（或优惠券）。

你是否注意到视频中原来的问答售货机又大又重？ 设计一个更小的，可能是滚动手推车大小的三分之一，这可以在学校、图书馆、博物馆和创客嘉年华之间更容易运输。

问答售货机的内部由步进电机组成。你可以在网上购买二手的。在网络上搜索“二手自动售货机电机”会出现 [Vending World](https://vendingworld.com/small-vending-parts/vending-machine-motors-small-parts) 和 [VendMedic](https://www.vendmedic.com/product-category/vending-parts/vend-motors/) 网站。

如果你是创客空间的成员，请向其他成员介绍问答售货机。这是一个开放的发明，没有专利，所以任何人都可以制造它。（谢谢你，Greg Needel）我想为这样的设备编写代码并不太难。如果有人可以创建此类代码的 GitHub 仓库，以及可能附带的一些解释性截屏，那就太好了。

虽然问答售货机没有在红牛创意大赛中获奖，但这项发明还是值得获奖的。应该有人找到 Greg Needel 并给他一个合适的奖品。该奖项应该是什么样子的？可能是 2.5 万或 5 万美金的样子。我为 Greg Needel 和他的创意团队欢呼三声。他们把树莓派带到了这种计算机的发明者所希望的方向：修理工的快乐。大胆、美丽、开放。你还能要求更多吗？

最后一件事。问答售货机是几年前使用早期的树莓派型号制作的。当前的树莓派速度更快，响应更快。因此，你在上述视频中注意到的任何交互延迟在今天的树莓派上已不复存在。

哦，我非常想要一块糖果。我砸吧砸吧嘴。提醒我，我需要赚取多少积分才能获得士力架？不惜一切代价，我会不惜一切代价。

---

via: <https://opensource.com/article/23/3/raspberry-pi-trivia-vending-machine>

作者：[Phil Shapiro](https://opensource.com/users/pshapiro) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #949 cURL 发布 8.0，庆祝其 25 岁生日

Summary:
? cURL 发布 8.0，庆祝其 25 岁生日
? GitHub Copilot 将迁移到 GPT 上
? Mozilla 将建立 Mozilla.ai
»
»

![](/data/attachment/album/202303/23/083426t9o4s3z6sdtxvxqt.jpg)

![](/data/attachment/album/202303/23/083433zw1ve4ez1nana1h6.jpg)

### cURL 发布 8.0，庆祝其 25 岁生日

它是一个用于用 URL 传输数据的命令行工具和库，任何认真编写通过网络进行交互的代码的开发人员都可能使用过 curl。如今，它估计已经被安装了超过 100 亿次。它的第一个版本是 4.0，发布于 1998 年，它仅有 2200 行代码，由 httpget 和 urlget 项目改编而成。当时只能支持三种协议，24 个命令行选项，而现在可以支持 28 种协议，249 个选项。

>
> **[消息来源：The Register](https://www.theregister.com/2023/03/21/curl_project_25)**
>
>
>

>
> 老王点评：就这样一个原本的个人项目，现在居然发展成了互联网基石项目。
>
>
>

![](/data/attachment/album/202303/23/083442yva4ldjek41a7jev.jpg)

### GitHub Copilot 将迁移到 GPT 上

GitHub 已经对其 Copilot 编程模型进行了培训，以执行新的任务，并有了一个新的名字 GitHub Copilot X。今后，Copilot 将依靠一套不断发展的大型语言模型，包括 OpenAI 的 GPT-3.5-turbo 和 GPT-4，而不是 OpenAI 的 Codex 的定制版本。OpenAI 将在 3 月 23 日关闭 Codex 的公共 API。根据 GitHub 的数据，截至上个月，Copilot 参与了微软的云代码库中 46% 的代码创建，并帮助开发者的编程速度提高了 55%。

>
> **[消息来源：The Register](https://www.theregister.com/2023/03/22/github_copilot_learns_new_tricks/)**
>
>
>

>
> 老王点评：通过 VSCode、GitHub、Copilot，微软似乎已经把开发者所需要的各个方面都掌握了。
>
>
>

![](/data/attachment/album/202303/23/083454n4gree427e7ccoog.jpg)

### Mozilla 将建立 Mozilla.ai

Mozilla 今天宣布，他们将投资 3000 万美元建立一个新的创业公司 [Mozilla.ai](http://mozilla.ai/)，专注于 “建立一个值得信赖的、独立的、开源的 AI 生态系统”。Mozilla 称，“人工智能的核心是代理权、问责制、透明度和开放性。[Mozilla.ai](http://mozilla.ai/) 将成为大科技公司和学术界之外的一个空间，供志同道合的创始人、开发人员、科学家、产品经理和建设者聚集。”

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Mozilla.ai)**
>
>
>

>
> 老王点评：虽然这又是一个 Mozilla “不务正业”的项目，但是希望可以为 AI 打造一个可信、独立的道路。
>
>
>


用 CrowPi 树莓派套件了解关于计算机的一切

Summary: CrowPi 是一个超棒的树莓派项目系统，安装在一个笔记本电脑般的外壳里。

CrowPi 是一个超棒的树莓派项目系统，安装在一个笔记本电脑般的外壳里。

>
> CrowPi 是一个超棒的树莓派项目系统，安装在一个笔记本电脑般的外壳里。
>
>
>

![](/data/attachment/album/202303/24/170210th71d0o707worogv.jpg "Teacher or learner?")

我喜欢历史，也喜欢计算机，因此相比于计算机如何变成个人配件，我更喜欢听它在成为日常家用电器前的故事。[我经常听到的一个故事](https://opensource.com/article/21/8/my-first-programming-language) 是很久以前（反正在计算机时代算久远了）的计算机是多么的简单。事实上，它们简单到对于一个好奇的用户来说，弄清楚如何编程并不是十分困难。再看看现代计算机，它具有面向对象的编程语言、复杂的 GUI 框架、网络 API、容器等，但愈发令人担忧的是，计算工具正变得越来越难懂，对于那些没有接受过专门培训的人来说基本上无法使用。

从树莓派在 2012 年发布之日起，它就一直被定位为一个教育平台。一些第三方供应商通过附加组件和培训套件支持树莓派，以帮助所有年龄段的学习者探索编程、物理计算和开源。然而，直到最近，很大程度上还是要由用户来弄清楚市场上的所有部件如何组合在一起，直到我最近买了 CrowPi。

![CrowPi 不是一个笔记本电脑](/data/attachment/album/202303/24/170502y3rv55681xxiiguu.jpg "CrowPi more than a laptop")

### CrowPi2 介绍

乌鸦是非常聪明的鸟。它们能识别并记住面孔，模仿听到的声音，解决复杂的谜题，甚至使用工具来完成任务。CrowPi 使用乌鸦作为其徽标和名字是恰当的，因为这个设备充满了探索、实验、教育的机会，最重要的是，充满了乐趣。

其设计很巧妙：它看起来像笔记本电脑，但远不止于此。当你从机壳中取出蓝牙键盘时，它会显示一个隐藏的电子设备工坊，配有 LCD 屏幕、16 个按钮、刻度盘、RFID 传感器、接近传感器、线路板、扬声器、GPIO 连接、LED 阵列等等。*而且这一切都是可编程的。*

顾名思义，该装置本身完全由树莓派提供支持，它牢固地固定在机壳底部。

![CrowPi 的树莓派板](/data/attachment/album/202303/24/170508tpcx3yee8jjvxxp5.jpg "crowpi pi board")

默认情况下，你应该用电源适配器为设备充电，包装附带一个壁式插头，你可以将其插入机壳，而不是直接为树莓派供电。你还可以使用插入外部微型 USB 端口的电池电源。机壳内甚至还有一个抽屉，方便你存放电池。这样做的时候，有一根 USB 线从电池抽屉中弹出，并插入机壳电源端口，因此你不会产生这是一台“普通”笔记本电脑的错觉。然而，这样一台设备能够有如此美观的设计已经很理想了！

### 首次启动系统

CrowPi2 提供一张安装了 Raspbian 系统，贴有 “System” 标签的 microSD 卡，不过它同时还提供了装载 [RetroPie](https://opensource.com/article/19/1/retropie) 的第二张 microSD 卡。作为一个负责任的成年人（咳咳），我自然是先启动了 RetroPie。

RetroPie 总是很有趣，CrowPi2 附带两个超任风格的游戏控制器，确保你能获得最佳的复古游戏体验。

令人赞叹不已的是，启动实际的 Raspbian 系统的过程同样有趣，甚至可以说更有趣。它的登录管理器是一个自定义项目中心，有一些快速链接，如编程示例项目、Python 和 Arduino IDE、Scratch、Python 示例游戏、Minecraft 等。你也可以选择退出项目中心，只使用桌面。

![CrowPi 中心](/data/attachment/album/202303/24/170522irpxyp0k3bpaapzo.jpg "CrowPi hub")

对于习惯使用树莓派或 Linux 的人来说，CrowPi 桌面很熟悉，不过它也足够简单，所以很容易上手。左上角有应用程序菜单，桌面上有快捷图标，右上角有网络选择和音量控制的系统托盘等等。

![CrowPi 桌面](/data/attachment/album/202303/24/170530iiid0ds6wwm666yb.jpg "CrowPi desktop")

CrowPi 上有很多东西可供选择，所以你可能很难决定从哪里开始。对我来说，主要分为四大类：编程、物理电子学、Linux 和游戏。

盒子里有一本使用说明，所以你会知道你需要怎样进行连接（例如，键盘是电池供电的，所以它有时确实需要充电，它和鼠标总是需要一个 USB 适配器）。虽然说明书很快就能读完，但这一例子也充分体现了 CrowPi 团队是如何认真对待说明书的。

![CrowPi 文档](/data/attachment/album/202303/24/170543ty4wdpph4sd4dfgd.jpg "CrowPi docs")

### 编程

如果你想学习如何编码，在 CrowPi 上有很多成功的途径。你可以从中选择你觉得最满意的路径。

#### 1、Scratch

[Scratch](https://opensource.com/article/20/9/scratch) 是一个简单的可视化编码应用程序，可让你像拼 [乐高积木](https://opensource.com/article/20/6/open-source-virtual-lego) 一样将代码块组合在一起，制作出游戏和互动故事。这是开启编程之旅最简单的方法，我曾见过年仅 8 岁的孩子会花数小时来研究自己设计的游戏的最佳算法。当然，它不仅适合孩子们！成年人也可以从中获得很多乐趣。不知道从哪里开始？包装盒中有一本 99 页的小册子（打印在纸张上），其中包含 Scratch 课程和项目供你尝试。

#### 2、Java 和 Minecraft

Minecraft 不是开源的（虽然有 [几个开源项目](https://opensource.com/alternatives/minecraft) 复刻了它），但它有足够的可用资源，因此也经常被用来教授编程。Minecraft 是用 Java 编写的，CrowPi 同时装载有 [Minecraft Pi Edition](https://www.minecraft.net/en-us/edition/pi) 和 [BlueJ Java IDE](https://opensource.com/article/20/7/ide-java#bluej) ，如此可使学习 Java 变得比以往更容易、更有趣。

#### 3、Python 和 PyGame

CrowPi 上有几个非常有趣的游戏，它们是用 Python 和 [PyGame 游戏引擎](https://opensource.com/downloads/python-gaming-ebook) 编写的。你可以玩这些游戏，然后查看其源代码以了解游戏的运行方式。CrowPi 中包含 Geany、Thonny 和 [Mu](https://opensource.com/article/18/8/getting-started-mu-python-editor-beginners) 编辑器，因此你可以使用 Python 立即开始编程。与 Scratch 一样，包装盒中有一本包含有课程的小册子，因此你可以学习 Python 基础知识。

### 电子器件

隐藏在键盘下的物理电子工坊本质上是一系列 Pi Hat（附着在上的硬件）。为了让你可以认识所有的组件，CrowPi 绘制了一张中英双语的折页图进行详细的说明。除此之外还有很多示例项目可以帮助你入门。 以下是一张小清单：

* **你好**：当你与 CrowPi 说话时，LCD 屏幕上打印输出“你好”。
* **入侵警报**：使用接近传感器发出警报。
* **远程控制器**：让你能够使用远程控制（是的，这个也包含在盒子里）来触发 CrowPi 上的事件。
* **RGB 俄罗斯方块**：让你可以在 LED 显示屏上玩俄罗斯方块游戏。
* **语音识别**：演示自然语言处理。
* **超声波音乐**：利用距离传感器和扬声器创建简易版的 <ruby> 特雷门琴 <rt>  Theramin </rt></ruby>（LCTT 译注：世上唯一不需要身体接触的电子乐器）。

这些项目仅仅是入门级别而已，因为你还可以在现有的基础上搭建更多东西。当然，还有更多内容值得探索。包装盒里还有网络跳线、电阻、LED 和各种组件，这样你闲暇时也可以了解树莓派的 GPIO （通用输入输出端口）功能的所有信息。

不过我也发现了一个问题：示例项目的位置有点难找。找到演示项目很容易（它们就在 CrowPi 中心上），但源代码的位置并不是很容易被找到。我后来发现大多数示例项目都在 `/usr/share/code` 中，你可以通过文件管理器或终端进行访问。

![CrowPi 外围设备](/data/attachment/album/202303/24/170553au22g6vbcd32zu2u.jpg "CrowPi peripherals")

### Linux

树莓派上运行的是 Linux 系统。如果你一直想更深入了解 Linux，那么 CrowPi 同样会是一个很好的平台。你可以探索 Linux 桌面、终端以及几乎所有 Linux 或开源应用程序。如果你多年来一直在阅读有关开源的文章，并准备深入研究开源操作系统，那么 CrowPi 会是你想要的平台（当然还有很多其他平台也可以）。

### 游戏

包装盒中包含的 **RetroPie** SD 卡意味着你可以重新启动切换为复古游戏机，并任意玩各种老式街机游戏。它跟 Steam Deck 并不完全相同，但也是一个有趣且令人振奋的小游戏平台。因为它配备的不是一个而是两个游戏控制器，所以它非常适合多人合作的沙发游戏。最重要的是，你不仅可以在 CrowPi 上玩游戏，还可以制作自己的游戏。

### 配备螺丝刀

自我坐下开始使用 CrowPi2 以来已经大约两周，但我还没有通关所有项目。有很多个晚上，我不得不强迫自己停下摆弄它，因为即使我厌倦了一个项目，我也会不可避免地发现还有其他东西可以探索。总而言之，我在盒子里找到了一个特别的组件，这个组件让我马上知道 CrowPi 和我就是天造地设：它是一把不起眼的小螺丝刀。盒子上没有撕开就不保修的标签。CrowPi 希望你去修补、拆解、探索和学习。它不是笔记本电脑，甚至也不仅仅是个树莓派；而是一个便携的、低功耗的、多样化的、开源的学习者工具包。

---

via: <https://opensource.com/article/21/9/raspberry-pi-crowpi2>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[XiaotingHuang22](https://github.com/XiaotingHuang22) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何知道你是否使用了代理服务器？

Summary: 我必须提一下，并非所有代理配置都是恶意的。但是，了解你的系统是否配置了代理很重要。

![](/data/attachment/album/202303/24/174021wkdzn81kvtnngzaw.jpg)

什么是代理？

代理是充当客户端和另一台服务器之间的中介的服务器或软件应用。它充当客户端和互联网之间的网关，允许用户访问在线资源，同时隐藏他们的身份、位置和其他个人信息。

代理通常用于增强安全性和隐私，并为你的网络添加过滤器/防火墙。

有几种类型的代理，如 HTTP 代理、SOCKS 代理、透明代理等。

除非你在透明代理后面，否则检查起来毫不费力。在这里，我将讨论检测透明代理和常用代理的方法。

### 如何检查你是否在透明代理后面

虽然每种类型的代理都有其特性和功能，但如果它是透明代理，你将无法在客户端的 PC 上检测到它。这是因为透明代理在后台静默运行，拦截所有流量而不修改它。

有时，可能是你的互联网服务提供商和内容交付网络使用它们来缓存资源的副本以节省带宽或只是为了监视/过滤网络。

有几种方法可以检查你是否在透明代理后面：

* **通过某些在线 IP 检测/检查网站获得的 IP 地址可能与你的计算机或设备的 IP 地址不匹配**。因为代理服务器正在拦截你的流量并将其与 IP 地址一起发送出去。
* **检查你的网络设置以查看是否配置了代理服务器。**
* **借助一些在线代理检测工具。**
* **连接到你知道不存在的服务器。** 如果网页上显示的错误看起来与平时不同，你可能使用了代理。

无论你喜欢与否，你始终可以使用 [VPN 服务](https://itsfoss.com/best-vpn-linux/) 绕过透明代理。

### 如何检查你是否在 Ubuntu 上使用代理

Ubuntu 或任何其他 Linux 发行版提供了多种检查方法。此处使用运行 GNOME 的 Ubuntu 22.10。

#### 使用 GNOME 设置

这是直接的 GUI 方式。打开 GNOME <ruby> 设置 <rt>  Settings </rt></ruby> 并转到 “<ruby> 网络 <rt>  Networks </rt></ruby>” 选项卡，然后按旁边的齿轮图标。

![Select the gear icon adjacent to the Network proxy section](/data/attachment/album/202303/24/174023uzrwvbf0hihjwifb.png)

它应该默认 <ruby> 禁用 <rt>  Disabled </rt></ruby>。

如果你在代理后面，你可以在这里看到不同的状态。在代理设置中，你可以看到，我在这里使用了代理（手动配置）。

![Proxy details in GNOME Settings](/data/attachment/album/202303/24/174024hs9bin5mm5nb8shz.png)

可以使用 GNOME 桌面中的 `gsettings` 命令更改相同的代理状态。

```
gsettings set org.gnome.system.proxy mode 'none'

```

你可以将 `none` 替换为 `auto` 或 `manual`。请记住，此设置是临时的，仅适用于当前用户。

#### 使用命令行

你可以通过命令行以多种方式获取代理的状态。

##### 通过列出关联的环境变量获取代理的状态

打开终端并运行以下任一命令：

```
env | grep -i proxy

```

```
cat /etc/environment | grep -i proxy

```

```
set | grep -i proxy

```

![Using set command to check Proxy variables](/data/attachment/album/202303/24/174024f0cpvxr9yrp99pc1.png)

空输出意味着没有配置代理。否则，它将打印相关的环境变量。

>
> ? 请注意，如果你将代理设置为环境变量，这将起作用。
>
>
>

或者，你可以回显每个代理变量以检查是否设置了特定的代理变量。

以下是你可以在终端中输入的内容：

```
echo $http_proxy

```

##### 使用 nmcli 命令检查

打开终端并输入：

```
nmcli connection show

```

![List all the connections using nmcli command](/data/attachment/album/202303/24/174025cw2vcr2werlerm1r.png)

这将列出你的连接和关联的 UUID 编号。记下要检查的连接的 UUID 编号。然后使用命令：

```
nmcli connection show <UUID or name> | grep -i "proxy"

```

这将列出变量，你可以在其中记下代理服务器和端口。

![Proxy details using nmcli command](/data/attachment/album/202303/24/174025gsz7s77sey77jy9s.png)

### 总结

我希望本指南可以帮助你了解你是否在使用代理。

我必须提一下，**并非所有代理配置都是恶意的。**

但是，了解你的系统是否配置了代理很重要。

---

via: <https://itsfoss.com/check-proxy-server/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #950 ChatGPT 现在可以访问互联网实时数据

Summary:
? ChatGPT 现在可以访问互联网实时数据
? 兆芯开始向内核递交补丁加入对永丰架构的支持
? 美国作家协会将允许人工智能参与剧本创作
»
»

国内公司习惯性产品研发接近完成时，就会把主要研发开掉。一方面防止实际的研发人员功高盖主导致行政人员失去权利。另一方面节约成本。毕竟单纯维护没多少技术含量，关系户就能顶上。

如果某公司一个开创性产品出炉以后就沉寂了，大概率是这种情况。。。

![](/data/attachment/album/202303/24/201214tbll9xopppidwxet.jpg)

![](/data/attachment/album/202303/24/201223kedliyx44sszdzsi.jpg)

### ChatGPT 现在可以访问互联网实时数据

之前，ChatGPT 一直受到限制，因为它只能从其训练数据中提取信息，而训练数据截止至 2021 年。OpenAI 正在为 ChatGPT 增加对插件的支持，这一升级极大地扩展了聊天机器人的能力，并使其首次能够访问网络上的实时数据。这几乎是让其他服务成为 ChatGPT 的 “眼睛和耳朵”。目前已经有一些插件，新的插件开发需要申请等待。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/3/23/23653591/openai-chatgpt-plugins-launch-web-browsing-third-party)**
>
>
>

>
> 老王点评：每一个进步都如预料般出现，但是 AI “寒武纪”之后是什么，我想象不到。
>
>
>

![](/data/attachment/album/202303/24/201234bmtlnnssqus8ewth.jpg)

### 兆芯开始向内核递交补丁加入对永丰架构的支持

台湾威盛（VIA）在中国的合资企业兆芯开始向内核递交补丁加入对永丰微架构的支持。兆芯去年宣布了采用永丰架构的服务器 x86\_64 处理器 KH-4000 系列。永丰是陆家嘴微架构的继任者，仍然采用 16nm 工艺，支持最高 32 个核心，相比陆家嘴的 8 核是一大飞跃，频率最高 2.2GHz，支持 PCIe 3.0 和 DDR4。虽然它比不上 AMD 和英特尔的最新处理器，但对于国产 CPU 而言是进步。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Zhaoxin-Yongfeng-Linux-Start)**
>
>
>

>
> 老王点评：国产架构开始纷纷加入 Linux 支持，这是好事。
>
>
>

![](/data/attachment/album/202303/24/201248w6umkv6omv6x6u4l.jpg)

### 美国作家协会将允许人工智能参与剧本创作

该提案将允许作家使用人工智能来帮助写剧本，而不必分享写作信用或分割残值。或者，可以将人工智能生成的剧本交给作家，让他改写或润色，而作家仍将被视为第一作者。事实上，该提案将把人工智能视为一种铅笔一样的工具。目前还不清楚代表电影公司的 AMPTP 是否会接受这一想法。

>
> **[消息来源：Variety](https://variety.com/2023/biz/news/writers-guild-artificial-intelligence-proposal-1235560927/)**
>
>
>

>
> 老王点评：确实，以后 AI 就像是一种铅笔或办公软件一样。
>
>
>


GNOME 44 发布

不喜欢这个桌面，资源消耗大

继续折腾菜单栏与标题栏。。。微软的奸细干的很好。。。

>
> GNOME 44 终于来了，它带来了重新打造的设置应用，更新了快速设置功能，改进了可访问性等等。
>
>
>

![GNOME 44](/data/attachment/album/202303/25/100720s5y6nvsswnzzpkt4.jpg)

GNOME 可以说是\***最受欢迎的桌面环境**之一。

之前的 [GNOME 43 版本](https://news.itsfoss.com/gnome-43-release/) 就补充了许多有用的功能，而现在的 GNOME 44 版本也是一样。

让我们看看都有哪些内容。

### ? GNOME 44 有什么新功能？

我们最近已经分别介绍了 GNOME 44 的最佳功能；在这里，让我回顾一下这个发布的相关细节。

主要的亮点包括：

* 设置菜单的改造
* 快速设置的改进
* 文件选择器的网格视图
* 文件管理器的改进

#### 1、设置菜单的改造

![GNOME 44 上更新的设置菜单的截图](/data/attachment/album/202303/25/100720eu5yi2ysoyytyt84.jpg)

设置菜单进行了小规模的改造，**可访问性面板被重新设计**，以提供一个更现代的导航体验。

![鼠标和触摸板设置更新后的截图](/data/attachment/album/202303/25/182534hzu7ac8ru4mr6mua.jpg)

然后，一项新的功能让你可以 **通过二维码分享 Wi-Fi 密码**，并且改进了鼠标/触摸板设置。

“设备安全”下的信息也得到了更新，以增加技术细节的清晰度。

![GNOME 44 设备安全](/data/attachment/album/202303/25/100721kb3210ep2be099te.png)

#### 2、改进的快速设置菜单

![GNOME 44 快速设置面板中的蓝牙设置截图](/data/attachment/album/202303/25/100721fc01qic5bw252mqv.jpg)

快速设置面板已经得到了许多更新；它现在可以让你 **查看和管理当前连接的蓝牙设备**。

但你必须前往设置菜单来配对新设备。

![GNOME 44 快速设置菜单中的新截图快捷方式](/data/attachment/album/202303/25/100721fzr7puezu92lref7.jpg)

另一个新增功能是**新的屏幕截图快捷方式**，可以毫不费力地从快速设置菜单中进行屏幕截图。

这还不是全部；GNOME 44 的快速设置菜单现在有一个检查**在后台运行的应用程序的巧妙方法**。

![](/data/attachment/album/202303/25/100721y28o2u71sj1jsqc2.png)

你可以在我们之前的报道中找到关于这个功能的更多细节：

>
> **[GNOME 正在（某种程度上）恢复在几年前删除的功能](/article-15551-1.html)**
>
>
>

#### 3、新的锁屏/登录窗口

![GNOME 44 的新锁屏和登录窗口的截图](/data/attachment/album/202303/25/100721znqxe22noosxo69x.jpg)

GNOME 44 提供了**更新的锁屏和登录窗口**，有一个更大的用户头像和各种元素的细微变化，例如时钟的字体大小。

#### 4、GNOME 文件选取器中的缩略图

![GNOME 44 的文件选取器中的文件缩略图预览截图](/data/attachment/album/202303/25/100721xc6kc6m60vhthcm0.jpg)

去年年底，我们看到了 GNOME 文件选取器的一个**长时间要求的功能** 的 [回归](https://news.itsfoss.com/gnome-file-picker/)，而现在它终于到来了。

GNOME 的文件选取器从来没有一个合适的缩略图预览来查看文件。取而代之的是，它**依赖于一个普通的列表视图**。

直到现在。

它现在**带来了一个合适的缩略图视图**，可以通过点击文件选取器右上角的 “列表-网格视图” 切换进行切换。

#### ? 其他变化和改进

![GNOME 44 壁纸集合](/data/attachment/album/202303/25/100722a6qf6cf6zqwoz3fs.jpg)

这些并不是 GNOME 44 带来的唯一改进；这里有一些值得一提的改进：

* 新壁纸。
* 对文件管理器的各种小更新带来了性能的提高。
* Epiphany 网页浏览器被移植到 GTK4，并进行了许多错误修正。
* 在 GNOME 软件应用中加入了一个新的过滤器，激活后只显示开源的应用程序。
* 对联系人应用进行了各种改进，能够以二维码的形式分享联系人。
* 对 GNOME Builder 的许多 UI 和风格进行了修复。
* 在 [GNOME Circle](https://circle.gnome.org/?ref=its-foss-news) 集合中添加了十个新的应用程序。

你可以通过 [官方发布说明](https://release.gnome.org/44/?ref=its-foss-news) 来了解更多。

### 开始使用 GNOME 44

你可以在下个月期待 GNOME 44 与 Ubuntu 23.04 和 Fedora 38 一起出现。

如果你迫不及待地想得到它，使用 [Boxes](https://wiki.gnome.org/Apps/Boxes?ref=its-foss-news) 安装 [GNOME OS](https://os.gnome.org/?ref=its-foss-news) 应该是一个测试它的好方法。

>
> **[GNOME](https://www.gnome.org/getting-gnome/?ref=its-foss-news)**
>
>
>

? 你对这个丰富的 GNOME 44 更新有何看法？你想在你的 Linux 系统上使用它吗？

---

via: <https://news.itsfoss.com/gnome-44-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed/) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Python 中的输入函数：概念和示例

>
> 在这篇文章中，我将通过一些通俗易懂的例子来解释 Python 的 input() 函数的基础知识。
>
>
>

![](/data/attachment/album/202303/25/131909i61a6bgo62gd6196.jpg)

Python 是世界上最流行的编程语言之一，广泛应用于各种应用程序中。Python 中的一个基本概念是 `input()` 函数，它允许用户通过提供输入值与程序进行交互。

让我们看看 `input()` 函数是如何工作的，以及如何在 Python 程序中有效地使用它。

在开始之前，我希望你已经安装了 Python 并设置了一个基本的编辑器。如果没有，请参考我的以下指南：

* [如何在 Ubuntu 等 Linux 上安装 Python 3.11](/article-15230-1.html)
* [如何在 Windows 上安装 Python](/article-15480-1.html)
* [如何为 Python 设置 IDLE 编辑器](/article-15622-1.html)

### Python Input 函数

Python 中的 `input()` 函数用于接受用户输入的字符串。它提示用户输入一个值并等待用户提供输入。然后将用户的输入作为字符串存储在变量中，稍后可以在程序中使用。

#### 句法

```
input("your message to user")

```

当你运行 `input()` 函数时，它会向用户显示消息并 *等待* 输入。显示光标等待。当用户输入并按下回车键，`input()` 函数就会读取用户的输入。该值存储在你指定的变量中。

让我们看几个例子。

### 示例 1：简单的 input() 函数用法

以下代码片段接受输入并显示带有附加字符串的输出：

```
your_name = input("Enter your name:")
print("Hello " + your_name)

```

输出：

```
Enter your name:arindamHello arindam

```

![Python 输入函数：一个简单的例子](/data/attachment/album/202303/25/131917e1cstsx88xho69wh.jpg)

### 示例 2：以整数和浮点数作为输入

在使用 `input()` 函数时，你还可以在运行时使用 `int()` 或 `float()` 将输入转换。这是一个例子：

```
no_of_books = int(input("Enter total books ordered:"))
print ("Total number of books:", no_of_books)

price_of_each_book = float(input("Enter unit price:"))
print ("Total price:", no_of_books * price_of_each_book)

```

输出：

```
Enter total books ordered:5
Total number of books: 5
Enter unit price:10.1
Total price: 50.5

```

### 示例 3：连接列表

你还可以使用其他函数（例如列表）来接受一组值并将它们转换为 Python 中的 [列表](https://docs.python.org/3/library/stdtypes.html?highlight=list#lists)。这是一个接受输入并将其转换为列表的示例。然后使用另一组值并附加到第一个列表：

```
# 获取第一个列表的输入
list_1 = list(input("Enter numbers for list 1:"))

# 获取第二个列表的输入
list_2 = list(input("Enter some letters for list 2:"))

# 循环遍历第二个列表并添加到第一个列表
for j in list_2:
    list_1.append(j)

# 打印修改后的第一个列表
print(list_1)

```

输出：

```
Enter numbers for list 1:1234
Enter some letters for list 2:ABCD
['1', '2', '3', '4', 'A', 'B', 'C', 'D']

```

### 总结

我希望这个简单的指南通过几个示例阐明了 `input()` 函数。对于简单的场景，它是一个强大的功能，可以从标准输入中接受值。

---

via: <https://www.debugpoint.com/input-function-python/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #951 华为称已开发出自己的 14 纳米芯片设计套件

Summary:
? 华为称已开发出自己的 14 纳米芯片设计套件
? 大众汽车将支持汽车软件产品长达十余年
? 谷歌 Bard 令测试者失望
»
»

由于盗版的存在，我们与老美软件领域的差距比硬件大的多。。。

游戏软件、流氓软件以及广告软件除外。。。

首屏都变成图片了，太夸张了，保留现在的三分之一高度就可以啦。另外硬核观察的条幅为何要显示两次？

![](/data/attachment/album/202303/25/171444n3oopnde6vpk8vdk.jpg)

![](/data/attachment/album/202303/25/171452mqpp16nu8bub68qu.jpg)

### 华为称已开发出自己的 14 纳米芯片设计套件

据报道，华为已经完成了电子设计自动化（EDA）工具的工作，用于布置和制造低至 14 纳米工艺节点的芯片。该平台是这家电信设备巨头正在开发的 78 个平台之一，以取代美国和欧洲的芯片设计工具，这些工具已经受到美国和其他国家的出口管制。

>
> **[消息来源：The Register](https://www.theregister.com/2023/03/24/huawei_eda_14nm_chips/)**
>
>
>

>
> 老王点评：没说的，点赞！
>
>
>

![](/data/attachment/album/202303/25/171508lhhk9jszsa6clrhk.jpg)

### 大众汽车将支持汽车软件产品长达十余年

汽车的预期使用寿命要比智能手机长得多，而现在汽车上的信息娱乐系统对汽车的运行是不可或缺的。大众集团软件部门称“终身支持是完全重要的”，如果要给这个“终身”一个期限，那么是在生产结束后，软件支持 10 年，硬件为 15 年。而且，对于那些希望更长时间的品牌，如布加迪、兰博基尼和保时捷等，将提供额外的持续支持。此外，网络安全以及安全更新和补丁只要有就会提供。

>
> **[消息来源：Ars Technica](https://arstechnica.com/cars/2023/03/android-infotainment-will-be-supported-for-at-least-15-years-vw-says/)**
>
>
>

>
> 老王点评：确实，手机可以经常换，汽车更换的频率就低多了，那到时候车载软件的更新就是个问题。
>
>
>

![](/data/attachment/album/202303/25/171531ltvsjsx2n66n9v20.jpg)

### 谷歌 Bard 令测试者失望

谷歌在二月份 [宣布](/article-15519-1.html) Bard 时，因为一些演示错误导致估值 [骤降千亿](/article-15533-1.html)。一个多月后，谷歌周二启动了其人工智能 Bard 的测试，邀请美国和英国的用户注册访问。但测试者对 Bard 感到失望，他们说，“（在这个特定的聊天功能方面）必应现在远远领先于谷歌”、“谷歌的 Bard 似乎并不像必应或 GPT-4 那样有能力成为学习工具。”

>
> [消息来源：Business Insider](https://www.businessinsider.com/testers-say-google-bard-worse-than-chatgpt-2023-3)
>
>
>

>
> 老王点评：没事，谷歌，因为 AI 发布后被嘲讽的不止你一个~
>
>
>


如何找到合适的 Debian ISO 来下载

Linux 初学者建议ubuntu manjaro，debian配置太麻烦了

书虫还是要等8、9月份吧好漫长...

未来只要官方自由映像依然存在，即便不是作为主ISO而是作为备用下载，咱也是可以接受的。

还有CD/DVD已经默认只提供1号ISO了，2、3都默认没有了。

学习学习

![](/data/attachment/album/202303/26/101016gdf20utfqsu1215a.jpg)

>
> Linux 初学者可能会被官方的 Debian 下载 ISO 的页面弄得不知所措。这篇指南旨在简化下载体验。
>
>
>

对于 Debian 初学者来说，安装 Debian 可能会是一次艰难的经历。官方的下载页面包含了不少链接，以至于到底需要下载哪个令人困惑。

我准备这篇指南来帮助你从下载页面挑选合适的 Debian ISO 文件。

总的来说，你可以将 Debian ISO 文件分为两大类。它们是 “自由” 和 “非自由” 。

### 关于 “自由” 和 “非自由” Debian 镜像之间的一些注意事项

* Debian “非自由” 镜像是指包含不符合 Debian 自由软件准则的软件包的 Debian 操作系统的安装镜像。
* “非自由” 软件包包含专有的、有版权的或受许可证限制的软件，这些软件包禁止用户修改或分发代码。Debian 项目提供这些 “非自由” 镜像作为用户的一种可选下载项，以便他们使用需要专有驱动或固件的特定硬件设备或软件。
* “自由” 版本的 Debian，仅包含开源和可自由分发的软件包，这意味着用户有修改、分发和与他人分享的自由，而不受任何法律和道德上的限制。

从 Debian 12 “Bookworm”（即将发布）之后，非自由固件软件包将正式包含在主 ISO 文件中。因此，这篇指南将分为两个部分。

### 下载: Debian 12 “Bookworm”

这里是一份下载 ISO 版本的 Debian 12 “Bookworm” 的简单的表格（当前还不稳定，正在测试）。

| 描述 | 最大 ISO 体积 | **选择此 ISO 的情形** | ISO 下载链接（amd64） |
| --- | --- | --- | --- |
| 最小的体积；非常适合基本安装 | 700 MB | 你想下载基础的软件包，然后通过互联网来安装 | [iso-cd](https://cdimage.debian.org/cdimage/bookworm_di_alpha2/amd64/iso-cd/) |
| 完整的 DVD 体积 | 5 GB | 你想先下载所有的东西，然后开始安装，它非常适合离线安装 | [iso-dvd](https://cdimage.debian.org/cdimage/bookworm_di_alpha2/amd64/iso-dvd/) |

### 下载: Debian 11 “Bullseye”

#### 自由版本的 ISO 文件（没有专有软件包）

下面的 ISO 镜像是 “自由” 版本的镜像，这意味着它们不包含用于固件的大量专有软件包。

| 描述 | 最大 ISO 体积 | **选择此 ISO 的情形** | ISO 下载链接（amd64） |
| --- | --- | --- | --- |
| 最小的体积（网络安装 CD）；需要联通互联网下载软件包 | 500 MB | 你有稳定高速的互联网，希望开始时下载较少 | [iso-cd](https://cdimage.debian.org/cdimage/release/current/amd64/iso-cd/) [torrent](https://cdimage.debian.org/cdimage/release/current/amd64/bt-cd/) |
| 完整的 CD 体积；带有 CD 1、2 和 3；对于最基础的安装，你只需要 CD 1 | 700 MB | 你希望下载基础的软件包，然后不使用互联网来安装它们 | [iso-cd](https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/) [torrent](https://cdimage.debian.org/debian-cd/current/amd64/bt-cd/) |
| 完整的 DVD 体积；带有 DVD 1、2 和 3；对于最基础的安装，你只需要 DVD 1 | 5 GB | 你想先下载所有的东西，然后开始安装，这是离线安装的最理想方式 | [iso-dvd](https://cdimage.debian.org/cdimage/release/current/amd64/iso-dvd/) [torrent](https://cdimage.debian.org/cdimage/release/current/amd64/bt-dvd/) |

#### 非自由版本的 ISO 文件（带有专有软件包）

如果你有 Wi-Fi、蓝牙等特殊硬件 – 你可能会希望从下面的表中获取 “非自由” 版本的软件包。

| 类型 | 镜像种类 | **选择此 ISO 的情形** | ISO 下载链接（amd64） |
| --- | --- | --- | --- |
| 非自由 | 完整的 CD 、DVD | 你想要减少工作量，并希望 Debian 能够在所有受支持的硬件上工作 | [cd-dvd](https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/) （然后转到 `*-nonfree` 目录） |
| 非自由 | 完整的 CD 、DVD（<ruby> 立付 <rt>  Live </rt></ruby>版） – 独立的桌面环境软件包 | 你想要减少工作量，Debian 能够工作，并且带有一个立付系统。立付系统也提供完整的安装 | [cd-dvd-live](https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/)（然后转到 `*-nonfree` 目录） |

### 其它的架构

#### 针对 Debian 11 “Bullseye”

* [arm64](http://ftp.debian.org/debian/dists/bullseye/main/installer-arm64/current/images/)
* [armel](http://ftp.debian.org/debian/dists/bullseye/main/installer-armel/current/images/)
* [armhf](http://ftp.debian.org/debian/dists/bullseye/main/installer-armhf/current/images/)
* [i386](http://ftp.debian.org/debian/dists/bullseye/main/installer-i386/current/images/)
* mips (不可用)
* [mips64el](http://ftp.debian.org/debian/dists/buster/main/installer-mips64el/current/images/)
* [mipsel](http://ftp.debian.org/debian/dists/bullseye/main/installer-mipsel/current/images/)
* [ppc64el](http://ftp.debian.org/debian/dists/bullseye/main/installer-ppc64el/current/images/)
* [s390x](http://ftp.debian.org/debian/dists/bullseye/main/installer-s390x/current/images/)

所有的镜像，下载链接: [单击这里](https://cdimage.debian.org/cdimage/)。

### 较旧的版本（Debian 10 “Buster”）

如果你需要一些针对 Debian 10 “Buster” 的镜像，请访问这个 [页面](https://www.debian.org/releases/buster/debian-installer/)。

### 总结

对新用户来说，如果想要从官方网站上下载 Debian ISO 镜像，网站的信息可能多到无所适从。因此，我以一种恰当的格式总结下载链接。我希望这篇文章有助于你找到适合于你系统的目标 Debian ISO 镜像。

---

via: <https://www.debugpoint.com/download-debian-iso/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出