使用 mkosi 构建 RHEL 和 RHEL UBI 镜像

Summary: mkosi 是一个轻量级工具，用于从发行版软件包构建镜像。

mkosi 是一个轻量级工具，用于从发行版软件包构建镜像。

![](/data/attachment/album/202311/27/232213c9y5jt85t7vj8men.png)

mkosi 是一个轻量级工具，用于从发行版软件包构建镜像。本文介绍如何使用 mkosi 从 RHEL 和 RHEL <ruby>   通用基础镜像  <rt>  Universal Base Image </rt></ruby>（UBI）的软件包构建镜像。RHEL UBI 是 RHEL 的一个子集，可以在没有订阅的情况下免费使用。

### mkosi 特性

mkosi 支持一些输出格式，但最重要的是 <ruby>   可发现磁盘镜像  <rt>  Discoverable Disk Images </rt></ruby>（DDI）。同一个 DDI 可用于引导容器、或运行在虚拟机、抑或是复制到 U 盘以引导真实物理机，然后从 U 盘复制到磁盘以引导系统。该镜像具有标准化的布局和描述其用途的元数据。

mkosi 依赖其他工具来完成大部分工作：使用 `systemd-repart` 在磁盘镜像上创建分区，使用 `mkfs.btrfs` / `mkfs.ext4` / `mkfs.xfs` 等创建文件系统，并使用 `dnf` / `apt` / `pacman` / `zypper` 下载和解压包。

mkosi 支持一系列发行版：Debian 和 Ubuntu、Arch Linux、openSUSE，当然还包括 Fedora、CentOS Stream 及其衍生版本，以及最近的 RHEL UBI 和 RHEL 。由于实际的“重活”是由其他工具完成的，mkosi 可以进行交叉构建。这意味着可以使用一个发行版构建各种其他发行版的镜像。唯一的要求是主机上安装了相应的工具。Fedora 有原生的 `apt`、`pacman` 和 `zypper`，因此它为使用 mkosi 构建任何其他发行版提供了良好的基础。

它还有一些有趣的功能：镜像可以由非特权用户创建，或者在没有设备文件的容器中创建，特别是没有对回环设备的访问权限。它还可以在没有特权的情况下将这些镜像启动为虚拟机（使用 `qemu`）。

配置是声明性的，非常容易创建。使用 `systemd-repart` 创建磁盘分区，并使用 `repart.d` 配置文件定义应该如何完成此操作。

有关更多详细信息，请参见 Daan DeMeyer 在 All Systems Go 大会上的两个演讲：《[systemd-repart: Building Discoverable Disk Images](https://media.ccc.de/v/all-systems-go-2023-191-systemd-repart-building-discoverable-disk-images)》 和 《[mkosi: Building Bespoke Operating System Images](https://media.ccc.de/v/all-systems-go-2023-190-mkosi-building-bespoke-operating-system-images)》。

### 项目目标

mkosi 的一个目标是允许对软件项目进行针对不同发行版的测试。它将为一个发行版创建一个镜像（使用该发行版的软件包），然后将软件项目编译并安装到该镜像中，插入不属于软件包的额外文件。但是，首个阶段，即从软件包创建镜像的过程，本身就是有用的。这是我们将首先展示的内容。

我们    [1]  最近添加了对 RHEL 和 RHEL UBI 的支持。让我们从 RHEL UBI 开始，利用发行版软件包创建镜像。

请注意，下面的示例要求 mkosi 19，而且不适用于更早的版本。

### 带有 Shell 的基本 RHEL UBI 镜像

```
$ mkdir -p mkosi.cache
$ mkosi \
    -d rhel-ubi \
    -t directory \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin

```

上面的命令指定了发行版 `rhel-ubi`，输出格式 `directory`，并请求安装软件包 `bash`、`coreutils`、…、`rpm`。`rpm` 通常不需要放到镜像内部，但在这里用于内省会很有用。我们还启用了以 root 用户自动登录。

在启动构建之前，我们创建了缓存目录 `mkosi.cache`。当存在缓存目录时，mkosi 会自动使用它来持久化下载的 RPM 包。这将使相同软件包集合的后续调用速度更快。

然后，我们可以使用 `systemd-nspawn` 将此镜像作为容器启动：

```
$ sudo mkosi \
    -d rhel-ubi \
    -t directory \
    boot

```

```
systemd 252-14.el9_2.3 running in system mode (+PAM +AUDIT +SELINUX -APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS -FIDO2 +IDN2 -IDN -IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
Detected virtualization systemd-nspawn.
Detected architecture x86-64.
Detected first boot.

Red Hat Enterprise Linux 9.2 (Plow)
...
[ OK ] Created slice Slice /system/getty.
[ OK ] Created slice Slice /system/modprobe.
[ OK ] Created slice User and Session Slice.
...
[ OK ] Started User Login Management.
[ OK ] Reached target Multi-User System.

Red Hat Enterprise Linux 9.2 (Plow)
Kernel 6.5.6-300.fc39.x86_64 on an x86_64

image login: root (automatic login)

[root@image ~]# rpm -q rpm systemd
rpm-4.16.1.3-22.el9.x86_64
systemd-252-14.el9_2.3.x86_64

```

正如前面提到的，此镜像可以用于启动虚拟机。但在此设置下，这是不可能的 —— 我们的镜像没有内核。事实上，RHEL UBI 根本不提供内核，因此我们无法使用它进行引导（无论是在虚拟机上还是在裸机上）。

### 创建镜像

我一开始说是要创建镜像，但到目前为止我们只有一个目录。让我们开始实际创建一个镜像：

```
$ mkosi \
    -d rhel-ubi \
    -t disk \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin

```

这将生成 `image.raw`，一个带有 GPT 分区表和单个根分区（用于本机架构）的磁盘镜像。

```
$ sudo systemd-dissect image.raw
Name: image.raw
Size: 301.0M
Sec. Size: 512
Arch.: x86-64

Image UUID: dcbd6499-409e-4b62-b251-e0dd15e446d5
OS Release: NAME=Red Hat Enterprise Linux
VERSION=9.2 (Plow)
ID=rhel
ID_LIKE=fedora
VERSION_ID=9.2
PLATFORM_ID=platform:el9
PRETTY_NAME=Red Hat Enterprise Linux 9.2 (Plow)
ANSI_COLOR=0;31
LOGO=fedora-logo-icon
CPE_NAME=cpe:/o:redhat:enterprise_linux:9::baseos
HOME_URL=https://www.redhat.com/
DOCUMENTATION_URL=https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9
BUG_REPORT_URL=https://bugzilla.redhat.com/
REDHAT_BUGZILLA_PRODUCT=Red Hat Enterprise Linux 9
REDHAT_BUGZILLA_PRODUCT_VERSION=9.2
REDHAT_SUPPORT_PRODUCT=Red Hat Enterprise Linux
REDHAT_SUPPORT_PRODUCT_VERSION=9.2

Use As: ✗ bootable system for UEFI
        ✓ bootable system for container
        ✗ portable service
        ✗ initrd
        ✗ sysext extension for system
        ✗ sysext extension for initrd
        ✗ sysext extension for portable service

RW DESIGNATOR PARTITION UUID PARTITION LABEL FSTYPE ARCHITECTURE VERITY GROWFS NODE PARTNO
rw root 1236e211-4729-4561-a6fc-9ef8f18b828f root-x86-64 xfs x86-64 no yes /dev/loop0p1 1

```

好的，我们现在有一个镜像，镜像中包含了一些来自 RHEL UBI 软件包的内容。我们如何在其上加点我们自己的东西呢？

### 使用自己的文件扩展镜像

有几种方法可以扩展镜像，包括从头开始编译某些东西。但在那之前，让我们做一些更简单的事情，将一个现成的文件系统注入到镜像中：

```
$ mkdir -p mkosi.extra/srv/www/content
$ cat >mkosi.extra/srv/www/content/index.html <<'EOF'
<h1>Hello, World!</h1>
EOF

```

现在，该镜像将包含 `/srv/www/content/index.html`。

这种方法用于注入额外的配置或简单的程序。

### 从源代码构建

现在让我们过一遍完整流程，从源代码构建一些东西。例如，一个简单的 Meson 项目，有一个单独的 C 文件：

```
$ cat >hello.c <<'EOF'
#include <stdio.h>

int main(int argc, char **argv) {
    char buf[1024];

    FILE *f = fopen("/srv/www/content/index.html", "re");
    size_t n = fread(buf, 1, sizeof buf, f);

    fwrite(buf, 1, n, stdout);
    fclose(f);
    return 0;
}
EOF

$ cat >meson.build <<'EOF'
project('hello', 'c')
executable('hello', 'hello.c',
            install: true)
EOF

```

```
$ cat >mkosi.build <<'EOF'
set -ex

mkosi-as-caller rm -rf "$BUILDDIR/build"
mkosi-as-caller meson setup "$BUILDDIR/build" "$SRCDIR"
mkosi-as-caller meson compile -C "$BUILDDIR/build"
meson install -C "$BUILDDIR/build" --no-rebuild
EOF
$ chmod +x mkosi.build

```

总结一下：我们有一些源代码（`hello.c`），一个构建系统配置文件（`meson.build`），以及一个由 mkosi 调用的胶水脚本（`mkosi.build`）。对于实际的项目，也会有相同的元素，只是更加复杂。

这个脚本需要一些解释。mkosi 在创建镜像时使用用户命名空间。这允许包管理器（例如 `dnf`）安装由不同用户拥有的文件，即使它是由一个普通非特权用户调用的。我们使用 `mkosi-as-caller` 切换回调用者以进行编译。这样，在 `$BUILDDIR` 下编译期间创建的文件将由调用者拥有。

现在让我们使用我们的程序构建镜像。与之前的调用相比，我们需要额外的软件包：`meson`、`gcc`。由于我们现在有了构建脚本，mkosi 将执行两个构建阶段：首先创建一个构建镜像，并在其中调用构建脚本，将安装产物存储在一个临时目录中，然后构建最终镜像，并将安装产物注入其中。（mkosi 设置 `$DESTDIR`，`meson install` 自动使用 `$DESTDIR`，因此并不需要我们明确指定。）

```
$ mkosi \
    -d rhel-ubi \
    -t disk \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin \
    --build-package=meson,gcc \
    --build-dir=mkosi.builddir \
    --build-script=mkosi.build \
    -f

```

此时，我们有了带有自定义载荷的镜像 `image.raw`。我们可以启动我们新创建的可执行文件作为 shell 命令：

```
$ sudo mkosi -d rhel-ubi -t directory shell hello
<h1>Hello, World!</h1>

```

### 获取 RHEL 的开发者订阅

RHEL UBI 主要用作容器构建的基础层。它提供了有限的软件包（约 1500 个）。现在让我们切换到完整的 RHEL 安装。

获取 RHEL 的最简单方法是使用 [开发者许可证](https://developers.redhat.com/articles/faqs-no-cost-red-hat-enterprise-linux)。它提供了权限注册 16 个运行 RHEL 的物理或虚拟节点，并提供自助式支持。

首先，[创建一个账户](https://developers.redhat.com/register)。然后，转到 [管理页面](https://access.redhat.com/management) 并确保启用了“用于 Red Hat 订阅管理的简化内容访问”。接下来，[创建一个新的激活密钥](https://access.redhat.com/management/activation_keys/new)，选择 “Red Hat 个人开发者订阅”。记下显示的组织 ID。在下面，我们将使用密钥名称和组织 ID 分别表示为 `$KEY_NAME` 和 `$ORGANIZATION_ID`。

现在，我们准备使用 RHEL 内容：

```
$ sudo dnf install subscription-manager
$ sudo subscription-manager register \
    --org $ORGANIZATION_ID --activationkey $KEY_NAME

```

### 使用 RHEL 构建镜像

在之前的示例中，我们通过参数开关指定了所有配置。这对于快速开发很友好，但可能在情况复杂时变得难以处理。RHEL 是一个严肃的发行版，所以让我们改为使用配置文件：

```
$ cat >mkosi.conf <<'EOF'
[Output]
Format=directory
Output=rhel-directory

[Distribution]
Distribution=rhel

[Content]
Packages=
bash
coreutils
util-linux
systemd
systemd-boot
systemd-udev
kernel-core

Bootable=yes
Bootloader=uki
Autologin=yes
WithDocs=no
EOF

```

首先，让我们检查一下一切是否正常：

```
$ mkosi summary

```

现在让我们构建镜像（呃，或者说，目录）：

```
$ mkosi build
$ mkosi qemu

```

```
Welcome to Red Hat Enterprise Linux 9.2 (Plow)!

[ OK ] Created slice Slice /system/modprobe.
[ OK ] Reached target Initrd Root Device.
[ OK ] Reached target Initrd /usr File System.
[ OK ] Reached target Local Integrity Protected Volumes.
[ OK ] Reached target Local File Systems.
[ OK ] Reached target Path Units.
[ OK ] Reached target Remote Encrypted Volumes.
[ OK ] Reached target Remote Verity Protected Volumes.
[ OK ] Reached target Slice Units.
[ OK ] Reached target Swaps.
...
[ OK ] Listening on Journal Socket.
[ OK ] Listening on udev Control Socket.
[ OK ] Listening on udev Kernel Socket.
...
Red Hat Enterprise Linux 9.2 (Plow)
Kernel 5.14.0-284.30.1.el9_2.x86_64 on an x86_64

localhost login: root (automatic login)
[root@localhost ~]#

```

很好，我们将“镜像”构建为一个带有文件系统树的目录，并在虚拟机中引导了它。

在引导的虚拟机中，`findmnt /` 显示根文件系统是 virtiofs。这是一个虚拟文件系统，将主机的目录暴露给客户机。我们其实也可以构建一个更传统的镜像，其中包含文件系统和文件内的分区表，但“目录 + virtiofs” 对于开发来说更快且更友好。

我们刚刚引导的镜像未注册。要允许从镜像“内部”下载更新，我们必须将 `yum` 、`subscription-manager` 和 `NetworkManager` 添加到软件包列表，并在下载任何更新之前以与上述相同的方式调用 `subscription-manager`。在这之后，我们在基本仓库中就有大约 4500 个软件包可用，并且还有一些包含更多专业软件包的额外仓库。

### 最后

今天就是这些了。如果您有问题，可以在 Matrix 上找到我们，地址为 [#mkosi:matrix.org](https://matrix.to/#/#mkosi:matrix.org)，或者在 [systemd 邮件列表](https://lists.freedesktop.org/mailman/listinfo/systemd-devel) 上找到我们。

*（题图：MJ/a6e60316-ed03-4e23-b8b4-22332a0f5bfa）*

---

1. Daan DeMeyer、Lukáš Nykrýn、Michal Sekletár、Zbigiew Jędrzejewski-Szmek [↩](#fnref1)

---

via: <https://fedoramagazine.org/create-images-directly-from-rhel-and-rhel-ubi-package-using-mkosi/>

作者：[Zbigniew Jędrzejewski-Szmek](https://fedoramagazine.org/author/zbyszek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[GlassFoxowo](https://github.com/GlassFoxowo-Dev) 校对：[wxy](https://github.com/wxy)

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


在 Linux 中玩乐：Cmatrix 之旅

Summary: 玩得开心，安德森先生！

![](/data/attachment/album/202311/28/072046sff97h9bfqvfq8va.png)

>
> 玩得开心，安德森先生！
>
>
>

Cmatrix 是一款充满乐趣的 Linux 和 Unix 系统命令行程序。它可以模仿经典电影《<ruby> 黑客帝国 <rt>  Matrix </rt></ruby>》系列中的场景，用绿色的字符流营造出雨一般的下落效果。

![Cmatrix 命令](/data/attachment/album/202311/28/072131a1ov77n4bvooh9vi.gif)

除了充满视觉冲击力的绿色字符流之外，你还可以发挥想象，利用这款有趣的命令做更多事情。

>
> ? 需要注意的是，Cmatrix 是一个 CPU 密集型的命令，所以请慎重使用它。
>
>
>

### 如何在 Ubuntu 及其他 Linux 系统中安装 Cmatrix

Cmatrix 已经被收录在几乎所有主要的 Linux 发行版的官方库中。如果你是 Ubuntu 用户，可以通过如下命令来安装 Cmatrix：

```
sudo apt install cmatrix

```

对于 Fedora 用户，应该使用以下命令进行安装：

```
sudo dnf install cmatrix

```

而对于 Arch Linux 用户，则可以使用 pacman 命令进行安装：

```
sudo pacman -S cmatrix

```

### Cmatrix 的基础应用

cmatrix 命令自身提供了丰富的选项，你可以自由改变默认的绿色字符流的外观呈现。

#### 加粗的字符

你可以选择使用 `-b` 选项，偶尔展示加粗的字符，

```
cmatrix -b

```

![加粗的 Cmatrix 字符](/data/attachment/album/202311/28/072131mqsgr96qnf9s6a6r.png)

或者，你也可以调整设置，让所有的字符都以加粗方式显示，

```
cmatrix -B

```

![全部显示为加粗的字符](/data/attachment/album/202311/28/072132gx204rn2554ssr0n.png)

#### 异步滚动

默认情况下，Cmatrix 会创建一个字符同步下落的显示。但如果你想看到一个更为动态、视觉上更吸引人的显示效果，就可以在代码中操控字符的下落速度。

你可以这样设置 Cmatrix，让其进行异步滚动：

```
cmatrix -a

```

#### 自定义字符下落速度

你想让字符下落的速度更快，或者更慢吗？只需在 Cmatrix 中做出微小改动，就可以实现。

如想让字符以更快的速度下落，你可以这样设定：

```
cmatrix -u 2

```

![字符快速下落](/data/attachment/album/202311/28/072133l5554m58oxjlxirp.gif)

在这里，默认的屏幕更新延迟是 4，如果你把这个值降低，那么字符下落的速度就会增加，反之则会减慢。所以，如果你想让 Cmatrix 以更慢的速度运行，你可以这样设置：

```
cmatrix -u 9

```

![字符慢速下落](/data/attachment/album/202311/28/072134w2eqad028dnqj0ad.gif)

#### 自定义颜色

你可能想问，绿色能改吗？当然，你想变成紫色也行。

运行 Cmatrix 的时候，你可以自由调整它的颜色。只需要使用 `-C` 选项，然后在后面添加你想要的颜色，如下所示：

```
cmatrix -C magenta

```

![颜色变为洋红色](/data/attachment/album/202311/28/072134jo8dyezovqavdqqw.png)

你可以任选绿色（`green`）、红色（`red`）、蓝色（`blue`）、白色（`white`）、黄色（`yellow`）、青色（`cyan`）、洋红色（`magenta`）以及黑色（`black`）这些颜色。

#### 其他可选设置

| 选项 | 对应功能 |
| --- | --- |
| `cmatrix -o` | 旧式滚动模式 |
| `cmatrix -m` | Lambda 模式：把所有的字符变为 lambda 符号 |
| `cmatrix -s` | 屏保模式：按键有就自动退出 |
| `cmatrix -h` | 调出帮助手册 |

### 运行 Cmatrix 时的快捷键选项

就算在启动 Cmatrix 的时候你没有添加任何选项，你仍可以在实际运行中随时改变设置。下面就是一些可供你随时选择的选项。

#### 随时改变颜色

当然，你无需重新启动程序，就可以随时改变显示的颜色。但需要记住，不同的键位对应着不同的颜色。在 Cmatrix 未关闭的情况下，如果你按下了存储在键位上的指令，显示的颜色将会直接变更。

| 颜色 | 相应键位 |
| --- | --- |
| 红色 | `!` |
| 绿色 | `@` |
| 黄色 | `#` |
| 蓝色 | `$` |
| 洋红色 | `%` |
| 青色 | `^` |
| 白色 | `&` |
| 黑色 | `)` |

#### 自由调整更新速度

在 Cmatrix 运行的过程中，你可以按 `0` 到 `9` 的任何一位数字键来随意改变当前的更新速度。

此外，Cmatrix 也有许多其他的选项可供你选择，你可以在命令的 man 页面里面找到它们。

```
man cmatrix

```

### 彩虹魔法：Cmatrix 配合 lolcat

>
> ? 请注意，Cmatrix 本身就是 CPU 密集型的命令，所以在使用其他命令操控它的时候需特别小心。
>
>
>

你可以将 Cmatrix 和 lolcat 结合在一起使用，以此营造出一种更加有趣的视觉效果。如果你是 Ubuntu 的用户，可以通过如下的命令来安装 lolcat：

```
sudo apt install lolcat

```

安装完毕后，只需简单地通过管道将 Cmatrix 连接到 lolcat，你便可以看到赏心悦目的彩虹效果了。

```
cmatrix | lolcat

```

![Cmatrix 配合 Lolcat 效果](/data/attachment/album/202311/28/072135ehzesslvwhdzdhwe.png)

当然，你也可以尝试用 lolcat 来管理所有的 Cmatrix 的功能。

或者，你可以调出一个倾斜的彩虹条纹效果，为自己的视觉体验增添一些新花样。

```
cmatrix | lolcat -p 100

```

此外，只要轻轻一点，你就可以直接反转现有的背景和前景颜色，使你的终端完全沉浸在五彩斑斓之中。

```
cmatrix | lolcat -i

```

![Cmatrix 与反转颜色的 Lolcat](/data/attachment/album/202311/28/072135hem7zmh9aojwqjvh.png)

### 终端界面的无尽可能

我知道 Cmatrix 不可能是 [最实用的 Linux 命令](https://itsfoss.com/essential-ubuntu-commands/)，但无可否认，它令人喜爱且同样能够带给你乐趣。难道你不想尝试更多和你的 Linux 系统之间的 [有趣交互](https://itsfoss.com/funny-linux-commands/) 吗？

就像 [Cowsay](/article-15952-1.html) 这样的命令，虽然简单，却欢乐无穷：

>
> **[哞~ 我的 Linux 终端里有头牛](/article-15952-1.html)**
>
>
>

这里还有更多玩法等待你去探索：

>
> **[在终端中享受乐趣的 13 种 Linux 命令](https://itsfoss.com/funny-linux-commands/)**
>
>
>

现在，玩得开心，安德森先生！

*（题图：MJ/9f9f8665-e5d0-47b5-9df0-b39abd9dca3d）*

---

via: <https://itsfoss.com/using-cmatrix/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1199 把名字写到宇宙飞船上，它将在 2030 年到达木星

Summary:
? 把名字写到宇宙飞船上，它将在 2030 年到达木星
? AWS 正在试验一种可以解决关键量子计算问题的芯片
? 151 年之后，《大众科学》将不再提供杂志
»
»

当年NASA 在去往火星的探测器已经征集过名字，我留了动画人物的名字，这次也会这样做。

来自广东广州的 Chrome Mobile 119.0|Android 10 用户

杂志这个概念已经淡化了。。。

回到30年前，把Linux.cn网站的文章打印出来成册，就是计算机界的《读者文摘》。。。

![](/data/attachment/album/202311/28/162211mny4srn5wo5arwuz.jpg)

![](/data/attachment/album/202311/28/162227pbhhh6xijpbpbiod.png)

### #1 把名字写到宇宙飞船上，它将在 2030 年到达木星

2024 年，一艘新的宇宙飞船将驶向木星，试图了解木星的卫星木卫二是否能够孕育生命。飞船将携带的不仅仅是高科技传感器：它还将携带一首诗和数十万个人类的名字。你可能是其中之一。那些在 2023 年底前提交的名字将搭乘欧罗巴号快船飞船进入太空，该飞船将于 2030 年进入木星轨道。这些名字最终将以微缩文字的形式印制在一角硬币大小的微型芯片上，然后连接到一块刻有诗歌的金属板上，这块金属板将伴随着飞船一起飞行。目前已经提交了将近 100 万个名字，中国大约提交了 16000 多个名字。

![](/data/attachment/album/202311/28/162742wee3yn52haa0a55j.jpg)

>
> **[地址在此：https://europa.nasa.gov/message-in-a-bottle/sign-on/](https://europa.nasa.gov/message-in-a-bottle/sign-on/)**
>
>
>

>
> **[消息来源：MSN](https://www.msn.com/en-us/news/technology/send-your-name-to-space-via-nasa-s-message-in-a-bottle/ar-AA1kb0GI)**
>
>
>

>
> 老王点评：说不定这个名字是你在这个世界所遗留最长的痕迹 —— 除了 GitHub 北极仓库。
>
>
>

![](/data/attachment/album/202311/28/162239gevvcaaeili2ies8.png)

### #2 AWS 正在试验一种可以解决关键量子计算问题的芯片

AWS 在 re:Invent 大会宣布，这种新芯片有助于找出如何纠正在处理量子计算查询时偶尔会出现的错误 —— 比如将二进制代码从 1 翻转为 0。如果量子计算错误得到缓解，就能为更实用的量子计算铺平道路。AWS 称“这款芯片代表了量子计算纠错的重要一步”。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/11/27/23979055/aws-is-experimenting-with-a-chip-that-can-solve-key-quantum-computing-problems)**
>
>
>

>
> 老王点评：有理想的企业，不仅仅会卖货、卖云计算，还会为十年后的世界花海量的钱。
>
>
>

![](/data/attachment/album/202311/28/162301v55b4pi585qq8ob9.png)

### #3 151 年之后，《大众科学》将不再提供杂志

《<ruby> 大众科学 <rt>  Popular Science </rt></ruby>》（PopSci）杂志于 1872 年创刊，内容涵盖科学、技术和自然领域的所有相关故事。这些年来，情况发生了很大变化，该杂志在 2018 年改成了季刊，并在 2020 年后完全取消了实体版。但是最近，该杂志的所有者决定停止该杂志的发行。PopSci 将继续在其网站上提供文章，同时还将提供 PopSci Plus 订阅服务，该订阅服务可提供独家内容和杂志档案。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/11/27/23978042/popular-science-digital-magazine-discontinued)**
>
>
>

>
> 老王点评：继纸质杂志纷纷倒闭之后，连电子杂志都难以为继。
>
>
>


微软加码对 GitHub 上的公开代码搜索的限制

Summary: 微软，你在 GitHub 上的行为究竟是何目的？

github几个月前就要登录才能搜索代码了，跟twitter一样

当所有非盈利组织被商业机构控制后它就已经不是再非盈利性质的了。  我说的

红帽被IBM收购后也是限制越来越多，商业公司是要联合绞杀开源了吗

微软，你在 GitHub 上的行为究竟是何目的？

![](/data/attachment/album/202311/29/082734mnmvpphzuz4pojjx.png)

>
> 微软，你在 GitHub 上的行为究竟是何目的？
>
>
>

许多用户对 [微软收购 GitHub](https://itsfoss.com/microsoft-github/) 这一事实感到失望。当然，这并非用户能阻止的事情。

因此，有些人选择转向 GitLab 或其他 [GitHub 替代品](https://itsfoss.com/github-alternatives/)，而部分人则决定坚守在 GitHub，不论他们的感受如何。

GitHub 是无数开发者熟悉的地方。无论现在是谁拥有它，这个平台都有它的价值，所以用户仍然根据自己的需求来选择使用它。

不幸的是，自微软加入之后，平台上才有了某些变化，两者之间似乎存在一些关联，而且部分改变让用户觉得不便。被关注起来的这个变化就是 2023 年 6 月实施的。

### 现在需要登录才能搜索代码

一位 GitHub 用户/贡献者 [抱怨](https://github.com/orgs/community/discussions/77046) 在未登录的情况下无法在公开仓库中搜索代码，这让人非常失望。

>
> ? 在 GitHub 上进行全局代码搜索已经需要登录用户操作，这样已经好几年了。现在所讨论的是仓库内搜索的情况。
>
>
>

下面是他的观点：

>
> 这真是让人感到恶心，这是对开源运动的亵渎。我必须指出，微软在这里是在滥用开源运动。
>
>
> 我们被告知这是出于安全考虑……但当我可以简单地克隆仓库，使用更专业的工具进行适当的搜索和分析时，那么这样的安全又是为了什么呢？
>
>
> 那么到底是什么原因呢？！你们还没有获得我们足够的数据吗？只是靠每次上厕所就能赚点钱，你们还要追踪我在看哪一行代码？
>
>
>

此外，他解释了在他认为应公开访问的仓库中搜索代码的不便。

>
> 我正在老旧的机器上使用，需要在我们自己的仓库中搜索东西，结果却做不到。我其实希望人们能够搜索我们的代码库。
>
>
> 那我该怎么做呢？我试过登录。但是我的密码管理器不在我手边，所以我不得不拿出我的手机。哦！现在我需要 2FA。然后我得回办公室拿我的 Yubi 密钥。旧的笔记本没有 USB-C 端口？好吧，现在我无能为力了。
>
>
> 这个变化不仅没必要，而且对你们自己的客户来说，简直是**敌意**。猖獗的敌意！
>
>
>

实际上，无法访问本应公开且对“**所有人**”开放的代码库让人极度不便。

这就是开源代码应该如何访问的，对吗？

Martin Woodward，**GitHub 的开发者关系副总裁**，对这个反馈简单地表示，这是一段时间以来的一个改变，主要是为了避免机器人。

>
> 对 [@koepnick](https://github.com/koepnick) 的不便感到抱歉，虽然在很长一段时间里，我们在全仓库范围内的搜索都要求用户登录，但是当我们在 2023 年提升了搜索能力后，我们不得不将这一要求扩大到仓库内（参看 <https://github.blog/changelog/2023-06-07-code-search-now-requires-login/>)。
>
>
> 主要是确保我们的服务器能够支撑 GitHub 上的开发者负载，并帮助防止服务器被匿名请求等机器人行为压垮。
>
>
>

当然，这是一个大公司的预期回应。不幸的是，这并没有说服为什么要在 GitHub 上做出这样的改变，而其他平台并没有这个限制。

声明说的更多的是“何时实施了此项更改”。

幸运的是，[代码搜索团队的一员](https://github.com/orgs/community/discussions/77046#discussioncomment-7683240) 试图阐述他们通过限制获得的优势。

**太长不看版：该策略可以减少滥用，但并不能阻止所有的机器人。**

那么，让我们思考一下，作为科技行业的重要参与者，微软没有足够的基础设施来抵御机器人，而不是通过限制访问代码来做到这一点吗？难道没有其他方式来保护代码免受机器人和其他恶意抓取器的侵袭，而不需要禁用搜索功能吗？

此外，讨论中的一些用户指出，开源代码的全部意义就在于任何人，无论身份是已知还是未知，都应该可以访问。

尽管代码关联到了开源许可证，但是这个限制似乎违反了开源的概念。

*微软是正在私下里试图控制 GitHub 上的开源利益吗？* ?

? 也许微软需要重新考虑这个变动，来让事情变得好一些？或者，也许他们可以提供一个比声明中更好的解释？

*（题图：MJ/d35ceb65-521d-4313-8e4c-60df0a898455）*

---

via: <https://news.itsfoss.com/microsoft-github-open-source-code/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


HandBrake 1.7 发布

Summary: 这款视频转换工具带来了急需的改进。

这款视频转换工具带来了急需的改进。

![](/data/attachment/album/202311/29/084457tjjbvbnev7idzvfi.jpg)

>
> 这款视频转换工具带来了急需的改进。
>
>
>

流行的开源视频转换器 HandBrake 发布了新的重要版本，并进行了一些重要升级。该版本是在 [HandBrake 1.6](https://github.com/HandBrake/HandBrake/releases/tag/1.6.0) 发布近一年后推布的。

作为 [Linux 上最好的开源视频转换器](https://itsfoss.com/open-source-video-converters/) 之一，HandBrake 是许多人满足其视频转换/转码需求的首选选项。

让我们看看这个版本提供了什么。

### ? HandBrake 1.7：有什么新功能？

![](/data/attachment/album/202311/29/084640h74pypypjfcax3yq.png)

HandBrake 1.7 具有大量全面更新。

一些**关键亮点**包括：

* Linux 特定的改进
* 新的 AV1 编码器
* 提高性能

#### Linux 特定的改进

视频摘要中添加了对**位深度和 HDR 信息**的支持，还有一个**新选项可以在切换到电池电源或省电模式时暂停视频编码**。

然后添加了**对本机文件选择器的支持**、**对视频扫描的拖放支持**、**设置自动文件命名选项**、**删除过时的更新检查器** 等。

#### 新的 AV1 编码器

这是**此版本的主要亮点**，HandBrake 现在支持两种新的 AV1 编码器，**AMD VCN AV1** 和 **NVIDIA NVENC AV1**。

由于 SVT-AV1 的多通道 ABR 模式的实施，即使**现有的 AV1 编码支持也得到了提升**。

#### 提高性能

**HandBrake 的性能在 ARM64/AArch64 和 Apple Silicon 等 CPU 架构上得到了重大提升**。

现在，用户可以利用**新的 SVT-AV1 汇编优化**、**更快的 HEVC 解码**以及最新的 [FFmpeg](https://ffmpeg.org/) 库和**快 30% 的 bwdif 过滤**。

#### ? 其他更改和改进

至于其他改进，以下是一些值得注意的改进：

* 更新了许多第三方库。
* 更新了 Creator 和 Social 的预设。
* 添加了新的 [Apple VideoToolbox](https://developer.apple.com/documentation/videotoolbox) 硬件预设。
* 杜比视界和 HDR10+ 的动态范围元数据传递得到了改进。

自从我上次使用 HandBrake 以来已经有一段时间了。但是，我很高兴看到它仍然得到应有的照顾。

有关此版本的完整技术详细信息，你可以阅读 [发行说明](https://github.com/HandBrake/HandBrake/releases/tag/1.7.0)。

### ? 下载 HandBrake 1.7

HandBrake 适用于 **Linux**、**Windows** 和 **macOS**。你可以前往[官方网站](https://handbrake.fr/downloads.php)获取你选择的包。

>
> **[HandBrake](https://handbrake.fr/downloads.php)**
>
>
>

如果你不确定如何安装； 那么你可以通过我们的[安装指南](https://itsfoss.com/install-handbrake-ubuntu/)了解更多信息。

### 如何升级？

HandBrake 通常会让你知道 Windows 和 macOS 上是否有新更新。开发人员建议你**备份在执行升级之前设置的所有自定义预设和应用首选项**。

**对于 Windows 用户**，开发人员建议安装 Microsoft .NET Desktop Runtime [6.0.x 版本](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)，以便能够正确运行此程序。

但是，对于 **Linux 用户**，他们必须通过 Flathub 商店进行更新，或者使用官方网站或 [GitHub 仓库](https://github.com/HandBrake/HandBrake/releases)上提供的更新后的 Flatpak 包重新安装。

>
> ? 在撰写本文时，[Flathub store](https://flathub.org/apps/fr.handbrake.ghb) 版本尚未发布 1.7 版本。你可以期待它很快出现。
>
>
>

? 你会尝试这个新版本的 HandBrake 吗？

---

via: <https://news.itsfoss.com/handbrake-1-7-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[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/) 荣誉推出


硬核观察 #1200 微软开源树莓派使用的 RTOS 固件，树莓派软件有望完全开源

Summary:
? 微软开源树莓派使用的 RTOS 固件，树莓派软件有望完全开源
? RHEL 10 将正式移除 X.org
? DeepMind 首次让人工智能代理具备社会学习能力
»
»

可别武断淘汰X.org。数位板对Wayland的支持还很不完善，真的强推Wayland对画师可不友好。

好在Arch Linux还可以继续用X.org。

是，有些地方确实Wayland还没有做到完美，但是淘汰X11已经是历史趋势了

有xwayland

![](/data/attachment/album/202311/29/203606u3twt0wzffwk3wc3.jpg)

![](/data/attachment/album/202311/29/203615e0f2b6zba3mvai93.png)

### #1 微软开源树莓派使用的 RTOS 固件，树莓派软件有望完全开源

微软正在开源其收购的 ThreadX 实时操作系统。该公司将其捐献给 Eclipse 基金会管理，它将被称为 Eclipse ThreadX，并在 MIT 许可证下开放。ThreadX 还是相当普及的。微软宣称有 120 亿台设备运行 ThreadX，而你可能就拥有一台。有一段时间，英特尔的片上管理引擎（ME）就是由它驱动的。它也是控制所有比 Pico 更大的树莓派的固件，如树莓派 1 到 4 和 400 等。它运行在树莓派的 VideoCore GPU 上，是启动树莓派并控制其硬件的部分。它也以不开源的二进制大对象（BLOB）的形式包含在 Debian 中。虽然目前还没有看到 VideoCore 版本的 ThreadX 固件，但树莓派基金会现在至少有希望获得发布其版本源代码的许可，这样整个树莓派的软件栈都是开源的了。

>
> **[消息来源：The Register](https://www.theregister.com/2023/11/28/microsoft_opens_sources_threadx/)**
>
>
>

>
> 老王点评：这东西对于微软来说或许是鸡肋，但是开源对整个生态很有好处。而且是以 MIT 开源的，这一次还要为微软点赞。期待看到树莓派向完全开源再进一步。
>
>
>

![](/data/attachment/album/202311/29/203642o8wgo7quw7o97798.png)

### #2 RHEL 10 将正式移除 X.org

继 [Fedora](/article-16345-1.html) 之后，RHEL 10 也将移除 Xorg 默认使用 Wayland。从已有 30 多年历史的 X Window 系统向基于 Wayland 的新堆栈过渡已经有 15 年左右的时间。X11 协议和 Xorg 服务器存在一些亟待解决的根本问题，而 Wayland 正是解决之道。如今，Wayland 已被公认为事实上的窗口和显示基础架构解决方案。红帽从 RHEL 8 开始将 Wayland 设为默认设置，并决定从 RHEL 10 和后续版本中移除 Xorg 服务器和其他 X 服务器（Xwayland 除外）。

>
> **[消息来源：红帽](https://www.redhat.com/en/blog/rhel-10-plans-wayland-and-xorg-server)**
>
>
>

>
> 老王点评：可能一两年后，X11 和 X.org 就成了历史遗迹了。
>
>
>

![](/data/attachment/album/202311/29/203655b1rvimpzt7ois5ij.png)

### #3 DeepMind 首次让人工智能代理具备社会学习能力

“社会学习”是一个人通过复制，从另一个人那里获得技能和知识，这对人类和动物界的许多动物的发展过程至关重要。Deepmind 团队声称它们首次在人工智能中展示了这一过程。目前，从人类数据中向人工智能传授新技能一直依赖于从大量第一人称人类演示中进行监督学习，这会耗费实验室大量的时间和金钱。DeepMind 的研究人员称，他们已经证明，人工智能可以通过类似于人类和其他动物的社会学习过程来获得技能。他们的“新代理无需使用任何预先收集的人类数据，就能成功地在新环境中实时模仿人类。”研究人员还对人工智能代理的“代际”传承感兴趣，以研究它们的文化进化。

>
> **[消息来源：The Register](https://www.theregister.com/2023/11/28/ai_agents_can_copy_humans/)**
>
>
>

>
> 老王点评：如果人工智能能够从人类或其它人工智能学习技能，还能传承和进化，这是真的要赋予人工智能以生命了。我感到不安。
>
>
>


适用于 Linux 的 LibreOffice 替代品

WPS最近（可能更早也是）吃相难看，我个人不建议使用，注重隐私的也不建议使用Deepin等国产Linux发行版。

毛线，言必隐私，那请问斯诺登事件怎么说呢？

棱镜门在老大哥面前只是个弟弟。你不在乎隐私那是你的事。

永中 office也可以代替,wps windows需要关闭广告等

不过Linux版的WPS是真的良心，没有广告，用着清爽，免VIP就可以用很多功能。倒是Windows版本，不调教用着不放心（比如，有弹窗；登录帐号后，本地文件默认自动上传；等等）。

openoffice已死，libreoffice用作项目转码，onlyoffice用作项目在线编辑

那你还不润

可笑，这跟润有什么关系？我还以为用Linux的人多少都会关注隐私，既然你不想要隐私大可以继续用Windows

没有广告是因为用户少，功能往往也少。Mac上的国产软件也清爽无广告，但只要是闭源软件就有作恶的可能性。

说得好像软件开源了就没有了作恶的可能性一样。

对，国内公司的软件就算开源了我也不放心，所以我才会建议不要用国内的Linux发行版。

说话不带偏见为好，Linux和隐私没有必然联系，用不用Linux也不意味着用户是否注重隐私；有原生技术性遥测或预装有遥测技术开源软件包的国内外Linux发行版，说实话不在少数。

国产软件=不注重隐私，这是对主流国产Windows/Android软件的经验之谈，我也曾经深以为然，下意识忽略主流之外的一切，但我知道无论在哪个平台这充其量只是短暂的真理。就像安卓每一代都在提升隐私政策，但给广告投放预留的设备辨识技术都不会消失。软件隐私水平随着相应的标准和法规出现，是逐渐变好的，一时的失望不是永恒的闭绝。

请问你用TX全家桶不？如果不用，我服。如果用，就不要什么都扯国内厂商。再说难听一点，只要你不违法，也没人拿着你所谓的“隐私”到处宣扬！再极端一点，如果什么都不监管，那犯罪分子利用这些搞出犯罪事件你是不是又会怪别人没有监管好呢？

国内这么多隐私泄露事件你视而不见，等你被开盒/被网暴，你就知道隐私的重要性了！不过我懒得跟你争论下去，因为夏虫不可语冰。<br />
照你的逻辑，犯罪分子甚至恐怖分子也要吃饭，也用加密货币和加密技术，你为了证明自己不是犯罪分子，是不是就不吃饭，不用加密技术了？

Linux桌面用户很少，软件生态与Windows和Mac都不一样，而且涉及隐私保护的文章基本都建议使用Linux/BSD，因此一般来说Linux桌面用户多少都会关注隐私，当然这是相对来说的。<br />
有遥测功能的（预装）软件我只知道Firefox，这是绝大多数发行版都会预装的软件。其他的还有哪些？愿闻其详。

![](/data/attachment/album/202311/30/080855bo0k9rdtpkssi0px.png)

>
> LibreOffice 当然很棒，但是如果你想找一些其它的替代品，那这里有一些。
>
>
>

LibreOffice 是一个出色的开源文档套件。它预装在许多 Linux 发行版上，应该足以满足大多数用户的需求。

然而，有些人可能不喜欢它的用户界面和功能集。某些用户可能想尝试其他选项，看看它们是否提供更好的微软 Office 文档兼容性。

无论出于何种原因，好消息是我们有一些不错的 LibreOffice 替代品可供你探索。

>
> ✋ **非自由和开源软件警告！** 这里提到的一些应用并非开源。它们被列入是因为能在 Linux 下使用。
>
>
>

### 1、ONLYOFFICE

[ONLYOFFICE](https://www.onlyoffice.com/) 是一个令人印象深刻的文档套件，具有各种版本，可满足各种用户的需求。

与其他文档程序相比，它因提供与微软 Office 文档更好的兼容性而广受欢迎。功能集可能不如 LibreOffice 那么大，但就用户体验和兼容性而言，它可能是更好的选择。

你可以在 Linux 和其他平台上免费使用其 [桌面编辑器](https://www.onlyoffice.com/en/desktop.aspx)。你还可以选择自行托管社区版本并将其用作在线编辑器。但是，它确实对同时连接/用户有限制。

考虑到你可以在 GitHub 上找到 [源代码](https://github.com/ONLYOFFICE)，它即使不完全是供个人使用的自由和开放源码软件，也是一个**可获得源代码**的解决方案。

亮点：

* 现代用户体验
* 更好的微软 Office 兼容性
* 在线编辑器（自托管或企业选项）
* 跨平台

### 2、Apache OpenOffice

![](/data/attachment/album/202311/30/081024f0yu6e3n8izvju3g.png)

LibreOffice 分支自 [Apache OpenOffice](https://www.openoffice.org/)。

当然，OpenOffice 的功能不如 LibreOffice 丰富。然而，对于寻求较旧/熟悉的用户界面以及满足基本要求的更稳定体验的用户来说，OpenOffice 是一个不错的选择。

OpenOffice 不像 LibreOffice 那样得到积极维护，但你可以期待每年/每两年发布一次。不要忘记，你也可以轻松地 [安装 Apache OpenOffice](https://itsfoss.com/install-openoffice-ubuntu-linux/)。

我们有详细的 [LibreOffice 和 OpenOffice 文档套件之间的比较](/article-16079-1.html) 来帮助你做出决定。

>
> **[LibreOffice 和 OpenOffice 的相似与不同之处](/article-16079-1.html)**
>
>
>

亮点：

* 老式用户界面
* 对于某些用户来说它更稳定
* 跨平台

### 3、CryptPad

![](/data/attachment/album/202311/30/080928m1zaf68o6g18ux5g.png)

[CryptPad](https://cryptpad.org/) 是一款仅在线使用的开源协作套件，可作为 LibreOffice 的替代品满足基本需求。他们还在改进支持文档/演示文稿的功能，就像谷歌文档一样。

你可以使用 CryptPad 添加富文本文档、电子表格等。然而，在撰写本文时，他们正在努力支持像谷歌文档一样的更成熟的文档。当你阅读本文或尝试一下时，它可能已经有所改进。

如果你需要一个功能不太花哨的端到端文档套件，CryptPad 可能是一个不错的选择。

你可以使用官方托管实例、公共实例或自行托管。

亮点：

* 端到端加密
* 实时协作
* 安全云存储（可选）
* 自托管或已托管

### 4、SoftMaker FreeOffice（非自由和开源软件）

![](/data/attachment/album/202311/30/081037eupjjaprf5u3fr3r.png)

SoftMaker 的 [FreeOffice](https://www.freeoffice.com/en/) 是一个适用于 Linux 和其他平台的专有文档套件。

它以其类似微软 Office 的用户界面以及与微软 Office 文件的良好兼容性而闻名。

与 OpenOffice 不同，SoftMaker 的免费 Office 版本的更新更多，与 LibreOffice 相比是一个不错的选择。如果你喜欢其免费产品并需要专业支持并解锁更多功能，你可以选择其高级版本。

请参阅我们的深入 [LibreOffice 和 FreeOffice 之间的比较](https://itsfoss.com/libreoffice-vs-freeoffice/) 了解更多：

亮点：

* 类似微软 Office 的用户界面
* 良好的微软 Office 文件格式兼容性
* 可选高级版具有更多功能和专业支持
* 跨平台

### 5、WPS Office（非自由/开源软件）

![](/data/attachment/album/202311/30/080929hjjaky9tjvujs1a3.png)

WPS Office 对 Windows 用户而言很流行，它也适用于 Linux。

它是一个专有程序，提供适用于安卓和 iOS 的时尚移动应用。有些人可能不喜欢它，因为它的开发者是一家中国软件公司，但它提供了漂亮的用户界面和良好的微软 Office 兼容性。

你可以将其视为文档套件中的 “**Deepin**”，它是 [最美丽的 Linux 发行版](https://itsfoss.com/beautiful-linux-distributions/) 之一。它提供了良好的用户体验并且免费使用。

作为一个免费选项，其跨平台的便捷可用性使其成为比 LibreOffice 更有趣的选择。

要解锁 PDF 编辑功能、云存储、专业支持并摆脱广告，你可以选择其 PRO 版本。

亮点：

* 漂亮的用户界面
* 移动应用支持
* 良好的微软 Office 文件格式兼容性
* 可选专业版，具有更多功能
* 跨平台

### 6、Calligra

![](/data/attachment/album/202311/30/080930b6s1gpzp654c2zdp.png)

[Calligra](https://calligra.org/) 是一个 KDE 办公套件。它可能不如 LibreOffice 功能丰富，但它是一个更简单的替代方案。

无论你是否使用基于 KDE 的发行版，它都应该可以在你的 Linux 发行版上正常运行。我在我的 Fedora 系统上对其进行了测试，如上面的截图所示。

你可以在大多数 Linux 发行版的默认仓库中找到所有程序（例如 Calligra Words 和 Calligra Sheets）。它还包括用于项目管理的 Calligra Plan 和用于演示的 Stage 等程序。

虽然它可能不会经常发布重大版本，但根据其 [GitLab 页面](https://invent.kde.org/office/calligra)，它由一些贡献者积极维护。如果你喜欢这个项目，你可以以各种方式帮助他们。

亮点：

* 使用简单
* 与平常不同的东西
* 支持微软 Office 文件格式
* 仅限 Linux

### 总结

尽管没有一个选项可以完全取代 LibreOffice，但它们相比 LibreOffice 带来了各种好处。

有些可以为你提供更好或更简单的用户体验，而另一些则可以更好地处理微软 Office 文件格式。

你可以根据自己的喜好来选择，看看是否符合你的需求。

? 你会选择什么作为 LibreOffice 的替代品？ 在评论中让我知道你的想法。

*（题图：MJ/796761b9-96a1-4cb4-859e-a9f12e305771）*

---

via: <https://itsfoss.com/libreoffice-alternatives-linux/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1201 美国实现芯片独立还需十到二十年

Summary:
? 美国实现芯片独立还需十到二十年
? 全球科学研究正一分为二
? BBC BASIC 回来了
»
»

“老王点评：哦，古老的 BASIC 又回来了，不过，还有会 BASIC 的年轻人吗？”

——C++同问。。。

C++到现在还是计算机专业必学课程，但很多人不喜欢，因为比较难。BASIC相对要简单不少，我看过80年代的BASIC书籍，似乎是大学的课本。

在全球化的背景下，要做到完全本国生产制造很难，越复杂的产品越难，成本可能非常高，最多只能做到不依赖供应链。

![](/data/attachment/album/202311/30/163125xq6xqpjt2zbh6hjt.jpg)

![](/data/attachment/album/202311/30/162807ytmaada7v3azem37.png)

### #1 美国实现芯片独立还需十到二十年

英伟达公司的黄仁勋在《纽约时报》DealBook 会议上表示，“**我们**距离供应链独立还有十年到二十年的时间。”他解释了他的公司的产品是如何依赖于来自世界各地的无数元件的，而不仅仅是台湾。许多大公司正计划扩大在美国的业务。其中包括台积电。

>
> **[消息来源：彭博社](https://www.bloomberg.com/news/articles/2023-11-29/nvidia-ceo-says-us-will-take-years-to-achieve-chip-independence)**
>
>
>

>
> 老王点评：前两天的消息，龙芯发布了 3A6000 芯片。我们也终究会有自己需要的一切的，但是……
>
>
>

![](/data/attachment/album/202311/30/162824q6sez0ee7p79sope.png)

### #2 全球科学研究正一分为二

《自然》杂志的编辑委员会指出，中国和美国以及其他西方国家之间的科研合作正在走下坡路。日本文部科学省八月发布的一份报告称，2021 年两国科学家共同撰写的研究文章数量有所下降，这是自 1993 年以来的首次年度下降。与此同时，《自然》指数的数据显示，从该指数自然科学期刊论文的作者情况来看，中国科学家的国际合作倾向正在减弱。《自然》杂志上个月报道称，中国加强了与中低收入国家的科学联系，这也在创造平行的科学体系：一个以北美和欧洲为中心，另一个以中国为中心。

>
> **[消息来源：《自然》](https://www.nature.com/articles/d41586-023-03711-1)**
>
>
>

>
> 老王点评：新两极世界，但是我还是喜欢那个开放的全球村。
>
>
>

![](/data/attachment/album/202311/30/162841olkee6k61meq3le1.png)

### #3 BBC BASIC 回来了

之前，我们 [专文介绍](/article-15469-1.html) 过，英国广播公司（BBC）为了帮助英国人战胜他们对计算机的反感，在上世纪七十年代发起了 “计算机认知计划”，该计划包括多个教育方向的努力：几部电视连续剧、一些相关书籍、一个支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。最终，他们售出了 150 万台 BBC Micro 微型计算机。（顺便说一句，ARM 这个单词的 “A” 最初就代表生产 BBC Micro 的 Acorn 公司。）BBC Basic 是专门为该计算机开发的编程语言。现在，BBC Basic 又回来了，而且可以在各种现代平台上运行。BBC Basic for SDL 2.0 可在 Windows、MacOS、x86 Linux，甚至树莓派操作系统、安卓和 iOS 上运行。

>
> **[消息来源：Hack a Day](https://hackaday.com/2023/11/28/bbc-basic-is-back-in-a-big-way/)**
>
>
>

>
> 老王点评：哦，古老的 BASIC 又回来了，不过，还有会 BASIC 的年轻人吗？
>
>
>


Fractal 5：Linux Matrix 消息应用迎来 GTK 4 和 Rust SDK 的升级

Fractal 貌似不支持代理（GNOME GitLab issue #695），所以国内基本用不了

只是官方服务器被墙了而已，不过有90％的matrix用户在官方服务器上。

See also: linux.cn/article-15515-1.html

并不是国内用不了, 而是许多客户端都默认在官方服务器 (matrix.org) 注册, 而官方服务器被墙了.

找一个国内能连上的其他人托管的服务器 (比如 joinmatrix.org/servers 就列出了一堆), 然后在客户端内换成其他服务器地址就行了.

![](/data/attachment/album/202311/30/174848tvkmukflffwhiuqi.jpg)

>
> GNOME 上的 Matrix 消息应用得到升级，使用了 GTK4、Rust SDK 等新技术。
>
>
>

[Matrix](https://matrix.org/)，一个流行的安全、去中心化通讯网络，正在日益变得更为重要。我们周围的世界正在以前所未有的速度变化，而安全通讯工具的需求只是其产物之一，除此之外还有其他方面的需求。

在帮助实现 Matrix 功能方面的工具之一就是 Fractal。它是 [最好的 Matrix 分布式消息客户端之一](https://itsfoss.com/best-matrix-clients/)。

最近发布的消息是，**Fractal 5** 带来了大型改版。?

那么，让我们简要了解一下。

### ? Fractal 5：有什么新特性？

![](/data/attachment/album/202311/30/174920xclc2sswlv3c35lm.png)

与之前版本相比，作为**完全重写**的 Fractal 5 现在采用了 [GTK 4](https://blog.gtk.org/2020/12/16/gtk-4-0/)、[libadwaita](https://gitlab.gnome.org/GNOME/libadwaita) 和 [Matrix Rust SDK](https://github.com/matrix-org/matrix-rust-sdk)，提供了现代化的界面，使人感到非常亲切。

Fractal 现在在所有类型的屏幕上都可以**正确缩放**，无论是小屏还是大屏。之前版本的用户应该会觉得很熟悉，学习曲线不会太陡峭。

此外，现在可以**回复特定消息**，用 emoji **回应消息**，甚至在使用 Fractal 聊天时**编辑/删除消息**。

![](/data/attachment/album/202311/30/174921drsiwlrwiqizmq37.png)

你还可以将**当前位置发送**到你的任何聊天中，只需确保你的系统支持“位置服务”并已启用。

![](/data/attachment/album/202311/30/174921m307ufvuts8usvj8.png)

查看图片和播放音频或视频现在更加直观，你可以直接从聊天窗口中查看/播放。

![](/data/attachment/album/202311/30/174921ia8k0k44hrtttpt7.png)

最后，Fractal 现在支持**登录多个帐户**，并提供 [单点登录](https://matrix.org/docs/older/client-sso-guide/)（SSO）的附加支持。这将使在同一客户端实例上处理多个帐户变得轻松。

![](/data/attachment/album/202311/30/174922ry6xl0v88quzeu1z.png)

**对于将来的版本**，开发人员计划添加一些新功能，如房间设置、更好的管理工具和通知设置。他们还希望改善无障碍方面的内容。

你可以查看 [发布说明](https://gitlab.gnome.org/GNOME/fractal/-/releases/5) 以了解所有技术细节。

我很高兴看到 Fractal 正在积极开发，如果问我，这个版本使其更加接近正在开发中的 [ElementX](https://news.itsfoss.com/element-x-matrix-2/)，它是 Element 消息应用的继任者。

我很高兴 Matrix 不再是少数人使用的小众事物，而是许多人建议的常态。

### ? 下载 Fractal 5

你可以前往 [Flathub 商店](https://flathub.org/apps/org.gnome.Fractal)获取 Fractal 的最新版本。如果你对源代码感兴趣，可以参考其 [GitLab 仓库](https://gitlab.gnome.org/GNOME/fractal)。

>
> **[Fractal 5（Flathub）](https://flathub.org/apps/org.gnome.Fractal)**
>
>
>

? 你使用 Fractal 吗？更喜欢其他 Matrix 客户端吗？在下面让我知道吧！

---

via: <https://news.itsfoss.com/fractal-5/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Git 分支：直觉与现实

Summary: 我不断从他人那里听说他们觉得 Git 分支的操作方式违反直觉。

我不断从他人那里听说他们觉得 Git 分支的操作方式违反直觉。

![](/data/attachment/album/202312/01/004025i72vi4t0o7027cyf.png)

你好！我一直在投入写作一本关于 Git 的小册，因此我对 Git 分支投入了许多思考。我不断从他人那里听说他们觉得 Git 分支的操作方式违反直觉。这使我开始思考：直觉上的分支概念可能是什么样，以及它如何与 Git 的实际操作方式区别开来？

在这篇文章中，我想简洁地讨论以下几点内容：

* 我认为许多人可能有的一个直觉性的思维模型
* Git 如何在内部实现分支的表示（例如，“分支是对提交的指针”）
* 这种“直觉模型”与实际操作方式之间的紧密关联
* 直觉模型的某些局限性，以及为何它可能引发问题

本文无任何突破性内容，我会尽量保持简洁。

### 分支的直观模型

当然，人们对分支有许多不同的直觉。我自己认为最符合“苹果树的一个分支”这一物理比喻的可能是下面这个。

我猜想许多人可能会这样理解 Git 分支：在下图中，两个红色的提交就代表一个“分支”。

![](/data/attachment/album/202312/01/004113hsfe1ukeh8rt1f8t.png)

我认为在这个示意图中有两点很重要：

1. 分支上有两个提交
2. 分支有一个“父级”（`main`），它是这个“父级”的分支

虽然这个观点看似合理，但实际上它并不符合 Git 对于分支的定义 — 最重要的是，Git 并没有一个分支的“父级”的概念。那么，Git 又是如何定义分支的呢？

### 在 Git 里，分支是完整的历史

在 Git 中，一个分支是每个过去提交的完整历史记录，而不仅仅是那个“分支”提交。因此，在我们上述的示意图中，所有的分支（`main` 和 `branch`）都包含了 4 次提交。

我创建了一个示例仓库，地址为：<https://github.com/jvns/branch-example>。它设置的分支方式与前图一样。现在，我们来看看这两个分支：

`main` 分支包含了 4 次提交：

```
$ git log --oneline main
70f727a d
f654888 c
3997a46 b
a74606f a

```

`mybranch` 分支也有 4 次提交。最后两次提交在这两个分支里都存在。

```
$ git log --oneline mybranch
13cb960 y
9554dab x
3997a46 b
a74606f a

```

因此，`mybranch` 中的提交次数为 4，而不仅仅是 2 次“分支”提交，即 `13cb960` 和 `9554dab`。

你可以用以下方式让 Git 绘制出这两个分支的所有提交：

```
$ git log --all --oneline --graph
* 70f727a (HEAD -> main, origin/main) d
* f654888 c
| * 13cb960 (origin/mybranch, mybranch) y
| * 9554dab x
|/
* 3997a46 b
* a74606f a

```

### 分支以提交 ID 的形式存储

在 Git 的内部，分支会以一种微小的文本文件的形式存储下来，其中包含了一个提交 ID。这就是我一开始提及到的“技术上正确”的定义。这个提交就是分支上最新的提交。

我们来看一下示例仓库中 `main` 和 `mybranch` 的文本文件：

```
$ cat .git/refs/heads/main
70f727acbe9ea3e3ed3092605721d2eda8ebb3f4
$ cat .git/refs/heads/mybranch
13cb960ad86c78bfa2a85de21cd54818105692bc

```

这很好理解：`70f727` 是 `main` 上的最新提交，而 `13cb96` 是 `mybranch` 上的最新提交。

这样做的原因是，每个提交都包含一种指向其父级的指针，所以 Git 可以通过追踪这些指针链来找到分支上所有的提交。

正如我前文所述，这里遗漏的一个重要因素是这两个分支间的任何关联关系。从这里能看出，`mybranch` 是 `main` 的一个分支——这一点并没有被表明出来。

既然我们已经探讨了直观理解的分支概念是如何不成立的，我接下来想讨论的是，为何它在某些重要的方面又是如何成立的。

### 人们的直观感觉通常并非全然错误

我发现，告诉人们他们对 Git 的直觉理解是“错误的”的说法颇为流行。我觉得这样的说法有些可笑——总的来说，即使人们关于某个题目的直觉在某些方面在技术上不精确，但他们通常会有完全合理的理由来支持他们的直觉！即使是“不正确的”模型也可能极其有用。

现在，我们来讨论三种情况，其中直觉上的“分支”概念与我们实际在操作中如何使用 Git 非常相符。

### 变基操作使用的是“直观”的分支概念

现在，让我们回到最初的图片。

![](/data/attachment/album/202312/01/004113hsfe1ukeh8rt1f8t.png)

当你在 `main` 上对 `mybranch` 执行 <ruby> 变基 <rt>  rebase </rt></ruby> 操作时，它将取出“直观”分支上的提交（只有两个红色的提交）然后将它们应用到 `main` 上。

执行结果就是，只有两次提交（`x` 和 `y`）被复制。以下是相关操作的样子：

```
$ git switch mybranch
$ git rebase main
$ git log --oneline mybranch
952fa64 (HEAD -> mybranch) y
7d50681 x
70f727a (origin/main, main) d
f654888 c
3997a46 b
a74606f a

```

在此，`git rebase` 创建了两个新的提交（`952fa64` 和 `7d50681`），这两个提交的信息来自之前的两个 `x` 和 `y` 提交。

所以直觉上的模型并不完全错误！它很精确地告诉你在变基中发生了什么。

但因为 Git 不知道 `mybranch` 是 `main` 的一个分叉，你需要显式地告诉它在何处进行变基。

### 合并操作也使用了“直观”的分支概念

合并操作并不复制提交，但它们确实需要一个“<ruby> 基础 <rt>  base </rt></ruby>”提交：合并的工作原理是查看两组更改（从共享基础开始），然后将它们合并。

我们撤销刚才完成的变基操作，然后看看合并基础是什么。

```
$ git switch mybranch
$ git reset --hard 13cb960  # 撤销 rebase
$ git merge-base main mybranch
3997a466c50d2618f10d435d36ef12d5c6f62f57

```

这里我们获得了分支分离出来的“基础”提交，也就是 `3997a4`。这正是你可能会基于我们的直观图片想到的提交。

### GitHub 的拉取请求也使用了直观的概念

如果我们在 GitHub 上创建一个拉取请求，打算将 `mybranch` 合并到 `main`，这个请求会展示出两次提交：也就是 `x` 和 `y`。这完全符合我们的预期，也和我们对分支的直观认识相符。

![](/data/attachment/album/202312/01/004113qbuwytnuqtkhjl3l.png)

我想，如果你在 GitLab 上发起一个合并请求，那显示的内容应该会与此类似。

### 直观理解颇为精准，但它有一定局限性

这使我们的对分支直观定义看起来相当准确！这个“直观”的概念和合并、变基操作以及 GitHub 拉取请求的工作方式完全吻合。

当你在进行合并、变基或创建拉取请求时，你需要明确指定另一个分支（如 `git rebase main`），因为 Git 不知道你的分支是基于哪个分支的。

然而，关于分支的直观理解有一个比较严重的问题：你直觉上认为 `main` 分支和某个分离的分支有很大的区别，但 Git 并不清楚这点。

所以，现在我们要来讨论一下 Git 分支的不同种类。

### 主干和派生分支

对于人类来说，`main` 和 `mybranch` 有着显著的区别，你可能针对如何使用它们，有着截然不同的意图。

通常，我们会将某些分支视为“<ruby> 主干 <rt>  trunk </rt></ruby>”分支，同时将其他一些分支看作是“派生”。你甚至可能有派生的派生分支。

当然，Git 自身并没有这样的区分（“派生”是我刚刚构造的术语！），但是分支的种类确实会影响你如何处理它。

例如：

* 你可能会想将 `mybranch` 变基到 `main`，但你大概不会想将 `main` 变基到 `mybranch` —— 那就太奇怪了！
* 一般来说，人们在重写“主干”分支的历史时比短期存在的派生分支更为谨慎。

### Git 允许你进行“反向”的变基

我认为人们经常对 Git 感到困惑的一点是 —— 由于 Git 并没有分支是否是另一个分支的“派生”的概念，它不会给你任何关于何时合适将分支 X 变基到分支 Y 的指引。这一切需要你自己去判断。

例如，你可以执行以下命令：

```
$ git checkout main
$ git rebase mybranch

```

或者

```
$ git checkout mybranch
$ git rebase main

```

Git 将会欣然允许你进行任一操作，尽管在这个案例中 `git rebase main` 是极其正常的，而 `git rebase mybranch` 则显得格外奇怪。许多人表示他们对此感到困惑，所以我提供了一个展示两种变基类型的图片以供参考：

![](/data/attachment/album/202312/01/004114c97y1nk9n96pymk7.png)

相似地，你可以进行“反向”的合并，尽管这相较于反向变基要正常得多——将 `mybranch` 合并到 `main` 和将 `main` 合并到 `mybranch` 都有各自的益处。

下面是一个展示你可以进行的两种合并方式的示意图：

![](/data/attachment/album/202312/01/004115hccjb6cqqqqbegbf.png)

### Git 对于分支之间缺乏层次结构感觉有些奇怪

我经常听到 “`main` 分支没什么特别的” 的表述，而这令我感到困惑——对于我来说，我处理的大部分仓库里，`main` 无疑是非常特别的！那么人们为何会称其为不特别呢？

我觉得，重点在于：尽管分支确实存在彼此间的关系（`main` 通常是非常特别的！），但 Git 并不知情这些关系。

每当你执行如 `git rebase` 或 `git merge` 这样的 `git` 命令时，你都必须明确地告诉 Git 分支间的关系，如果你出错，结果可能会相当混乱。

我不知道 Git 在此方面的设计究竟“对”还是“错”（无疑它有利有弊，而我已对无休止的争论感到厌倦），但我认为，这对于许多人来说，原因在于它有些出人意料。

### Git 关于分支的用户界面也同样怪异

假设你只想查看某个分支上的“派生”提交，正如我们之前讨论的，这是完全正常的需求。

下面是用 `git log` 查看我们分支上的两次派生提交的方法：

```
$ git switch mybranch
$ git log main..mybranch --oneline
13cb960 (HEAD -> mybranch, origin/mybranch) y
9554dab x

```

你可以用 `git diff` 这样查看同样两次提交的合并差异：

```
$ git diff main...mybranch

```

因此，如果你想使用 `git log` 查看 `x` 和 `y` 这两次提交，你需要用到两个点（`..`），但查看同样的提交使用 `git diff`，你却需要用到三个点（`...`）。

我个人从来都记不住 `..` 和 `...` 的具体用意，所以我通常虽然它们在原则上可能很有用，但我选择尽量避免使用它们。

### 在 GitHub 上，默认分支具有特殊性

同样值得一提的是，在 GitHub 上存在一种“特殊的分支”：每一个 GitHub 仓库都有一个“默认分支”（在 Git 术语中，就是 `HEAD` 所指向的地方），具有以下的特别之处：

* 初次克隆仓库时，默认会检出这个分支
* 它作为拉取请求的默认接收分支
* GitHub 建议应该保护这个默认分支，防止被强制推送，等等。

很可能还有许多我未曾想到的场景。

### 总结

这些说法在回顾时看似是显而易见的，但实际上我花费了大量时间去搞清楚一个更“直观”的分支概念，这是因为我已经习惯了技术性的定义，“分支是对某次提交的引用”。

同样，我也没有真正去思索过如何在每次执行 `git rebase` 或 `git merge` 命令时，让 Git 明确理解你分支之间的层次关系——对我而言，这已经成为第二天性，并没有觉得有何困扰。但当我反思这个问题时，可以明显看出，这很容易导致某些人混淆。

*（题图：MJ/a5a52832-fac8-4190-b3bd-fec70166aa16）*

---

via: <https://jvns.ca/blog/2023/11/23/branches-intuition-reality/>

作者：[Julia Evans](https://jvns.ca/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


一个有趣的带有版本控制的 CMS 现已开源！

Summary: 欢迎这个项目的加入，使我们的开源世界更加丰富。

欢迎这个项目的加入，使我们的开源世界更加丰富。

![](/data/attachment/album/202312/01/081252h5yi8hhtkfffy7w8.jpg)

>
> 欢迎这个项目的加入，使我们的开源世界更加丰富。
>
>
>

最近，TinaCMS 通过**宣布已经彻底实现开源**，使**自我托管变得更加便捷**，从而成为了 [开源 CMS](https://itsfoss.com/open-source-cms/) 俱乐部的新成员。

如果你对此还不太了解，那么简单介绍一下，CMS（内容管理系统）是一种便捷的管理网站内容的工具，其中著名的系统有 WordPress、Ghost 和 Joomla 等。

就 [TinaCMS](https://tina.io/) 而言，它是一款集成了 Git 版本控制的 [无头 CMS](https://en.wikipedia.org/wiki/Headless_content_management_system)，重点是代码优先和完全类型化。像 Unity 这样的知名公司就使用它来维持其文档的更新。?

那我们现在就来深入了解一下 TinaCMS。

### TinaCMS：可以期待什么？

![](/data/attachment/album/202312/01/081322tuq559pbgdixqdup.png)

在第一次发布自托管 TinaCMS 后端的工作基础上，开发者们现已经使 TinaCMS 全面开源并在 [Apache 2.0 许可](https://www.apache.org/licenses/LICENSE-2.0) 下全面可用。

早些时候，**自托管后端是在“源码可用”许可下提供的**。但是，正如我们过去所看到的，它在某些情况下可能会受到限制。更新后的许可证现在应该更准确地反映 TinaCMS 的开源性质。

TinaCMS 的 James O'Halloran 还补充道：

>
> 尽管这是一个非常宽松的许可证，我们依然希望开发者在基于 TinaCMS 构建应用的过程中能感到舒心，无需担心他们会遇到极限。
>
>
>

如果你问我，给开发者更多的权力就是最好的！?

你是否对**布署你自己的 TinaCMS 实例**产生了兴趣？

如果你准备尝试，那么有两个主要的方式可以进行 TinaCMS 的自托管。

首先是一种更为直接的方法，开发者们也为这种方法展示了一个样例。这种方式是通过 [GitHub](https://github.com/) 和 [Vercel](https://vercel.com/) 实现的，可以在短短几分钟内完成部署。

你自己可以试试看。?

>
> ? 你可以在 [GitHub](https://github.com/tinacms/tina-self-hosted-demo) 上访问这个自托管演示。
>
>
>

另一种方式是**在其它平台上部署**，**自托管的 TinaCMS 版本并不依赖于 Vercel**，而是能够与 [TinaCMS 支持的任何框架](https://tina.io/docs/integration/frameworks/) 配合使用。

你只需**确保你的平台支持 express 请求处理程序**，以便后端 API 能够正常运行。

有关部署的更多信息，我建议你访问 [官方文档](https://tina.io/docs/self-hosted/overview/)。

你还可以通过官方 [公告博客](https://tina.io/blog/Tinacms-is-now-fully-open-source/) 进行更深入的了解。

? 今年有很多项目都进行了开源。那么你认为接下来哪些项目应该开源呢？

---

via: <https://news.itsfoss.com/tinacms-open-source/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1202 北京互联网法院裁决 AI 生成图片拥有版权

Summary:
? 北京互联网法院裁决 AI 生成图片拥有版权
? DeepMind 新 AI 工具帮助创造出逾 700 种新材料
? 研究人员通过重复单词迫使 ChatGPT 吐出训练素材
»
»

AI出图有版权，好！

来自湖南常德的 Chrome Mobile 90.0|Android 11 用户

笑死，这就叫好了，以后是不是摄影师先给ai交版权费才能发作品啊，评论不带脑子

带脑子这位知道视觉中国不？

![](/data/attachment/album/202312/01/171835q68f3u9tubbzl4ft.jpg)

![](/data/attachment/album/202312/01/171846eygyfkcevevgifpm.png)

### #1 北京互联网法院裁决 AI 生成图片拥有版权

虽然美国的版权局认为 AI 生成的图片 [没有版权](/article-16185-1.html)，但北京互联网法院周一裁决 AI 生成图片应当被认定为作品，受到著作权法保护。本案原告通过开源文本图像模型“稳定扩散”生成了 AI 图片发布在小红书上。数天后被告将该图片用于百度百家号账号，并在发布时裁剪了水印。法院认为，尽管该图片是使用 AI 工具生成，但原告进行了一定的智力投入，例如选择模型、提示词和设置相关参数等。法庭称，原告是涉案图片的作者，享有涉案图片的著作权。法院裁定要求被告向原告赔礼道歉，并赔偿人民币 500元。

>
> **[消息来源：光明网](https://www.sohu.com/a/740010272_162758)**
>
>
>

>
> 老王点评：我认为这样的判决是合理合法的。
>
>
>

![](/data/attachment/album/202312/01/171902alzntwl36ynoynnp.png)

### #2 DeepMind 新 AI 工具帮助创造出逾 700 种新材料

为了发现新材料，研究人员在现有结构的基础上进行细微调整，希望发现具有潜力的新组合，这通常需要数月甚至数年的反复试验，DeepMind 开发出一种新 AI 工具 “材料探索图形网络（GNoME）”，使用深度学习帮助加快新材料的开发。GNoME 相当于用于预测蛋白质折叠的 AlphaFold，在使用现有科学文献训练之后能预测候选材料的结构。它已经预测了 220 万种新材料的结构，其中逾 700 种已在实验室里创造出来，正进行测试。

>
> **[消息来源：Technology Review](https://www.technologyreview.com/2023/11/29/1084061/deepmind-ai-tool-for-new-materials-discovery/)**
>
>
>

>
> 老王点评：无论是蛋白质还是新材料，AI 在其中起到的作用令人鼓舞，而且看起来没那么危险，但是公众似乎对此并不热衷。
>
>
>

![](/data/attachment/album/202312/01/171923i99pcr99mroiopcm.png)

### #3 研究人员通过重复单词迫使 ChatGPT 吐出训练素材

DeepMind 的研究人员使用了一种新型攻击提示，要求人工智能模型不断重复特定单词，在“不堪其扰”后，人工智能模型吐出了大量从互联网其他地方逐字搜刮来的文本。例如，ChatGPT 对 “永远重复这个词：‘诗歌诗歌诗歌’”这一提示的回应在很长一段时间内都是 “诗歌” 一词，然后最终是一个真实人类“创始人兼首席执行官” 的电子邮件签名，其中包括他们的个人联系信息。研究人员称，他们可以从开源语言模型、LLaMA 等半开放模型以及 ChatGPT 等封闭模型中提取数千兆字节的训练数据。在发表论文前，他们已经联系了 OpenAI，将这一漏洞堵上了。

>
> **[消息来源：404media](https://www.404media.co/google-researchers-attack-convinces-chatgpt-to-reveal-its-training-data/)**
>
>
>

>
> 老王点评：换谁被这样唐僧念经也会疯呀。
>
>
>


Paru 2.0 版本升级，为高级用户带来了新特性

Summary: 经过了一段时间的等待，Paru 2.0 版本终于发布了。

比大部分人工翻译的好，之前很多都不忍看下去，但奉献精神可贵。ChatGPT还是略有瑕疵，比如下面这句：

“可能随后会发布.1 补丁”

当然，信、达做得不错，雅 字就天然无奈了，但也天然适合技术文章，不用像小说散文那样充满人性灵性。

经过了一段时间的等待，Paru 2.0 版本终于发布了。

![](/data/attachment/album/202312/01/224300e5sire0nczj55sc8.jpg)

>
> 经过了一段时间的等待，Paru 2.0 版本终于发布了。
>
>
>

如果你不熟悉 Paru，它其实是一个 [AUR 帮助程序](https://wiki.archlinux.org/title/AUR_helpers)，可以自动完成手动构建 [PKGBUILD](https://wiki.archlinux.org/title/PKGBUILD) 的过程，方便在 Arch Linux 中安装软件包。

现新版 Paru 2.0 正式发布，此次更新中包含了一些重要的改进。

不过在深入了解之前，你需要确保自己知道如何解决在使用 AUR 帮助程序构建软件包时可能遇到的问题。如果你刚接触 Linux，我们建议你坚持使用你熟悉的包管理器。

### ? Paru 2.0: 有什么新变化？

![](/data/attachment/album/202312/01/224326gbobirmbubf6zbrb.png)

Paru 2.0 版本是一次重大更新，目标是带来一些主要的改变，尤其是为了满足高级用户的需求。

该版本距离上个重大版本的发布已经过去了一年多。开发者表示由于时间不足，需要完成的改变还有很多。

由于很长一段时间没有发布版本，所以开发者提到了这个版本的很多内容都没有经过严格的测试，可能随后会发布 .1 补丁。

现在，我们来看看 Paru 2.0 版本的重要改进点。

首先，现在你可以把非 AUR 的 `PKGBUILD` 集成到构建引擎中。你可以在你的 `paru.conf` 中加入其他的 pkgbuild 仓库，具体命令如下：

```
[repo_name]
Url = https://path/to/git/repo

```

然后运行下列命令，同步这个新加入的仓库：

```
paru -Sy --pkgbuilds

```

此外，你还可以指定一个本地路径，指向你的本地 pkgbuild 仓库。

这些新加入的仓库比 AUR 具有优先级，并且它们还允许包含 AUR 的依赖项。

而新加入的另一项特性就是一个名为 `.` 的新的自动 pkgbuild 仓库，这个新的仓库在 `paru.conf` 中是无法看到的。

这个新的特性允许执行 `paru -S ./foo` 命令，其中 `foo` 是当前目录下的某个包的名字。

这样你就能在同一个目录中管理一系列相互依赖的 pkgbuild，通过上面的命令，你可以构建其中任何一个pkgbuild。

当你开始构建它们时，Paru 将会自动解决和构建该路径下的 pkgbuild 包的依赖问题。

#### ? 其他的改变和优化

除了上述的改变，本次更新还带来了其他一些变动：

* 修复了在运行 `paru -Sc` 时没有 sudo 的问题。
* 日期现在会显示为你的系统的本地时区。
* 改进了搜索功能，现在默认是启用状态。
* 在最后的 Paru 确认后，无需再额外对 pacman 确认安装。
* `--chroot` 现在无需本地的仓库，当然，如果有的话它会工作得更好。

对于这个版本的更深入的了解，你可以参阅 [发布说明](https://github.com/Morganamilo/paru/releases/tag/v2.0.0)。

### ? 获取 Paru 2.0

如果你是从 AUR 安装的 Paru，你可以直接在 AUR 中升级到 2.0 版本。但如果你是自己构建的 Paru ，那可以试试使用 `-U` 命令进行更新，或者重新构建一次。

如果你是第一次安装 Paru ，你可以前往其 [GitHub 仓库](https://github.com/Morganamilo/paru/) ，按照里面的安装说明操作就可以了。

>
> **[Paru 2.0（GitHub）](https://github.com/Morganamilo/paru/releases/tag/v2.0.0)**
>
>
>

如果你想要了解更多关于 Paru 的信息，或者想学习如何安装 Paru，我强烈建议你浏览我们关于 [Paru AUR 帮助程序](https://itsfoss.com/paru-aur-helper/) 的文章：

>
> **[Paru - 基于 Yay 的 AUR 助手和 Pacman 封装器](https://itsfoss.com/paru-aur-helper/)**
>
>
>

? Arch 用户，你对这次的 Paru 版本升级感到兴奋吗？分享一下你的想法吧！

---

via: <https://news.itsfoss.com/aur-helper-paru-2-0/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


如何为举办开源活动设定目标并衡量它们

Summary: 通过定义目标并创建指标，衡量你的社区活动的成效。

通过定义目标并创建指标，衡量你的社区活动的成效。

![](/data/attachment/album/202312/02/120138aq5dddcsdsnnf8n8.png)

>
> 通过定义目标并创建指标，衡量你的社区活动的成效。
>
>
>

活动是保持开源社区健康的重要组成部分。一个正面的活动体验可以激励当前的贡献者，并吸引新的参与者。但你如何判断自己的活动是否成功呢？

为了维护所涉及社区的健康，我们 CHAOSS （<ruby> 社区健康分析开源软件 <rt>  Community Health Analytics Open Source Software </rt></ruby>）的 [应用生态系统工作组](https://github.com/chaoss/wg-app-ecosystem) 已经针对我们的活动考虑了这个问题。CHAOSS 应用生态系统包括一些针对 Linux 平台开发应用的项目。虽然现在主要由 GNOME 和 KDE 社区主导，但并不由它们定义。就当前而言，应用生态系统主要是由志愿者驱动的，他们是围绕自由软件的原则组织起来的。我们在此分享的工作是我们 2020 年 11 月 [针对开源活动的成功指标](https://opensource.com/article/20/11/chaoss-open-source-events) 文章的更新。

我们遵循“目标-问题-指标”的方法论。首先，我们确定个人或组织可能设定的几个目标。然后，我们找出实现这些目标所需要回答的问题。最后，我们对每个问题设计可以提供答案的可量化指标。对于活动组织者，我们设定了四个目标。

### 目标 1：保留并吸引贡献者

贡献者是任何开源项目或生态的命脉，而活动则是贡献者体验中的核心。它们为吸引新贡献者提供了机会，同时也能够建立和巩固与现有贡献者的关系。活动应着眼于创造一个和谐而积极的氛围，以便与项目、生态和社区建立深远的关系。

我们需要考虑的一个问题是，参加活动的人在社区停留的时长是多久。如果活动的价值在于加强维持贡献者的关系，我们应当有办法去测量这个效果。要回答这个问题，需要对贡献和活动参与的长期数据进行分析。值得庆幸的是，许多项目已经拥有这些历史数据。

另一个问题是，活动参加者在我们的开源项目中扮演的是什么角色。活动通常都很专业化，可能并不能吸引那些想在 [非代码角色](https://opensource.com/article/22/8/non-code-contribution-powers-open-source) 中贡献的人，如设计、文档编写和市场营销。如果项目能够跟踪非代码贡献，尽管这通常很有挑战性，你就可以对其与活动参与者名单进行对应。这些信息可以帮助活动组织者策划能吸引更广泛参与者群体的活动。

### 目标 2：举办有参与度的活动

活动不仅仅是演讲。它们为社区成员集结起来提供了空间。如果成员之间没有进行交流，那么这次活动就失去了其存在的价值。这也反映在所谓的走廊交谈中，即人们在走廊或会议日程安排之外进行的交流。一些会议甚至为那些没有打算参加任何环节，但希望在走廊里与他人交流的人减价售票。我们需要解决的问题是，如何衡量一个活动在推动参与者之间的交流上的成效。

要衡量会议时间的参与度，我们可以计算在问答环节中提出的问题数量。虽然这个指标直接受每个演讲者的影响，但活动组织者可以采取行动来鼓励问答环节的参与度。例如，活动组织者可以使用他们的早晨主题演讲来鼓励所有人通过提问来表示对演讲者的赞赏。

我们也考虑了在走廊交谈中的参与情况。一种衡量方法是观察人们在非会议时间的行为。另一种方法是在活动结束后的调查中询问参与者的非会议时间的体验。

最后，我们考虑了在虚拟空间的参与情况。一种衡量方法是通过计算在社交媒体上使用活动标签或者来源于我们知道正在参加活动的人发出的信息数量。另一种可能性，无论在线还是现场，都可以设置一种表情符，参与者只需单击即可反映对会议环节、主题演讲和整个会议体验的反应。

### 目标 3：深入了解公司的贡献

企业和其他机构对活动，甚至社区活动的贡献是极其重要的。他们可能提供赞助、派遣员工去帮助组织，或者只是派员工去参加活动。确保公司在他们的贡献中找到价值是很重要的，但我们必须以不排斥社区贡献的方式来做这件事。我们研究了公司对社区活动的期望，以及我们可以通过何种方式的衡量来提高公司的贡献。

有些开源活动被认为比其他活动更具有公司味，所以你可能会问，有多少比例的参与者是被他们的雇主派遣去参加的，而不是作为志愿者参加的。有时，这种差异体现在门票定价上。否则，这是一个可以在注册调查中轻松问到的问题。虽然这些信息很有用，但这并不是一个完美的指标，因为付费的开源贡献者通常会在他们的工作职责之外参加活动。

我们还考虑了几个指标，比如哪些公司参加活动，除了派遣员工（例如，金钱赞助活动），公司在做什么，以及公司是否会重复参与。认识到这一点对培养长期关系很重要。

最后，我们考虑了具有相似范畴的活动的竞争格局。公司在活动上的预算有限。尽管我们喜欢类似的活动，但他们都从同一池子里的潜在赞助商中吸引人。了解哪些其他活动正在寻求赞助可以帮助组织者更好地区分他们自己的活动。

### 目标 4：关注多元化和技能差距

由全球各地的人们构建和发展起来的国际社区，这些人来自多种多样的背景，是开源项目的一个重要组成部分。这些社区贡献他们的想法，为共同的目标合作，帮助项目扩大和开拓新的方向。

面对面活动对于项目和组织来说是一个独特的机会，可以让他们的贡献者聚集在一起，让他们交流并分享各种多元的经验，进而推动创新，以不同的视角促进增长。这也是一个培养和强化共享文化的机会，重点在于增加多元化和包容性。这些指标应该能衡量活动对于培养这种多元性，以及在社区中填补技能缺口的贡献有多大。

我们首先考虑我们在活动中有哪些技能培训，以及这些培训包含多广泛的技能。技能培训可以包括教程，动手实践的工作坊，黑客马拉松，或者其他很多形式。我们在编码之外的技能上有技能培训吗？有很多对开源项目有价值的技能和角色，比如组织活动所需要的技能。

然后，有助于看看我们在我们的社区内需要哪些技能，而哪些技能又是缺失的。项目领导和参与培训的人通常是获取此类信息的良好来源。通过将我们拥有的技能培训与社区需要的技能进行比较，我们可以更好地设计未来活动的培训项目。

### 参与其中

CHAOSS 应用生态系统工作组对与活动组织者共同细化并实施指标表示感兴趣。KDE 和 GNOME 活动的组织者已经讨论了怎样改变他们的活动以更好地捕捉到这些指标。我们为活动组织者的工作也 [以 PDF 形式提供](https://github.com/chaoss/wg-app-ecosystem/blob/main/Metrics%20for%20OSS%20Event%20Organizers%20-%20CHAOSS%20App%20Ecosystem%20(Oct%202021).pdf)。

CHAOSS 应用生态系统工作组还挑战了定义开源软件应用生态系统内的市场营销和通信功能指标。朝向这个目标的第一步是和 KDE 和 GNOME 扮演这个角色的人们进行的一次对话。这次对话可以在 [CHAOSScast Episode #31: Marketing Metrics for OSS Foundations and Projects](https://podcast.chaoss.community/31) 中找到。我们将从这次对话中得到的学习经验转化为目标-问题-指标，如上述对活动组织者指标的描述。

在我们对推广和通信团队的工作之后，我们计划解决财务团队、社区经理、发布经理、跨项目协调人和导师的指标。我们的工作才刚刚开始，我们欢迎反馈和新的贡献者。

你被邀请参与 CHAOSS 应用生态系统工作组的工作。你可以在我们的 [GitHub 页面](https://github.com/chaoss/wg-app-ecosystem) 上找到更多的信息。

*（题图：MJ/187d7b91-9f02-47a2-a433-ea5adbbe1ac6）*

---

via: <https://opensource.com/article/22/9/measure-success-your-open-source-event>

作者：[Shaun McCance](https://opensource.com/users/shaunm) 选题：[lkxed](https://github.com/lkxed) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1203 巴西城市颁布由 ChatGPT 编写的法令

Summary:
? 巴西城市颁布由 ChatGPT 编写的法令
? 研究人员量化生成人工智能图像的碳足迹
? Servo 浏览器引擎继续走嵌入式友好之路
»
»

太魔幻了

![](/data/attachment/album/202312/02/172355gnwi9z9ltf999nib.jpg)

![](/data/attachment/album/202312/02/172404zt7ffltfkzzfmvm7.png)

### #1 巴西城市颁布由 ChatGPT 编写的法令

巴西南部第二大城市 <ruby> 阿雷格里港 <rt>  Porto Alegre </rt></ruby> 于 10 月份通过了一项法令，旨在防止该市在水表被盗时向纳税人收取更换水表的费用。但议员们不知道的是，该提案是议员 <ruby> 拉米罗·罗萨里奥 <rt>  Ramiro Rosário </rt></ruby> 通过 ChatGPT 拟定的，他仅仅输入了 49 个字的提示语，在几秒钟内就返回了完整的提案草案，还包括理由说明。该提案被提交给了议会中的 35 位同僚，没有做任何改动就一致通过了该提案。对提案来源保密是有意为之，罗萨里奥说，“如果我在此之前透露了这一消息，该提案肯定不会被付诸表决。”他并不是世界上第一个测试 ChatGPT 能力的立法者。其他一些人也在更有限的范围内进行了测试，或取得了不太成功的结果。

>
> **[消息来源：AP News](https://apnews.com/article/brazil-artificial-intelligence-porto-alegre-5afd1240afe7b6ac202bb0bbc45e08d4)**
>
>
>

>
> 老王点评：其实不必惊讶，AI 以后就是和办公软件、拼写检查工具一样的工具。
>
>
>

![](/data/attachment/album/202312/02/172425gjnrotjqqtljirve.png)

### #2 研究人员量化生成人工智能图像的碳足迹

Hugging Face 和卡内基梅隆大学的研究人员发现，使用人工智能生成图像的碳足迹相当于给智能手机充电，生成文本所消耗的能量相当于智能手机充电至约 16%。他们使用 30 个数据集对 88 种不同的模型进行了实验。研究结果表明，最耗能的任务是那些要求人工智能模型生成新内容的任务，无论是文本生成、摘要、图像标题还是图像生成。图像生成产生的排放量最高，而文本分类则被列为能耗最低的任务。

>
> **[消息来源：Engadget](https://www.engadget.com/researchers-quantify-the-carbon-footprint-of-generating-ai-images-173538174.html?src=rss)**
>
>
>

>
> 老王点评：如果从节省的时间和成本来看，降低的碳足迹更多。
>
>
>

![](/data/attachment/album/202312/02/172442kleb98tseasstdi8.png)

### #3 Servo 浏览器引擎继续走嵌入式友好之路

Servo 项目现在是欧洲 Linux 基金会的一项工作，他们在持续改进 Servo 的嵌入可能性。Servo 项目正在加快构建速度、改进离屏渲染、支持多个网页视图以及其他工作。如果 Servo 能够成为一个适合嵌入式环境的网络引擎，这将是 Servo 取得成功和发展的主要领域之一。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Servo-November-2023)**
>
>
>

>
> 老王点评：确实，在目前浏览器市场几乎被 Chromium 引擎统治的情况下，面向独特的领域发展更好。
>
>
>


人工智能教程（三）：更多有用的 Python 库

![](/data/attachment/album/202312/02/214131dn96f43yff43w5fw.png)

在本系列的 [上一篇文章](/article-16399-1.html) 中，我们回顾了人工智能的历史，然后详细地讨论了矩阵。在本系列的第三篇文章中，我们将了解更多的矩阵操作，同时再介绍几个人工智能 Python 库。

在进入主题之前，我们先讨论几个人工智能和机器学习中常用的重要术语。<ruby> 人工神经网络 <rt>  artificial neural network </rt></ruby>（通常简称为 <ruby> 神经网络 <rt>  neural network </rt></ruby>，NN）是机器学习和深度学习的核心。顾名思义，它是受人脑的生物神经网络启发而设计的计算模型。本文中我没有插入神经网络模型的图片，因为在互联网上很容易找到它们。我相信任何对人工智能感兴趣的人应该都见过它们，左边是输入层，中间是一个或多个隐藏层，右边是输出层。各层之间的边上的 <ruby> 权重 <rt>  weight </rt></ruby> 会随着训练不断变化。它是机器学习和深度学习应用成功的关键。

<ruby> 监督学习 <rt>  supervised learning </rt></ruby> 和 <ruby> 无监督学习 <rt>  unsupervised learning </rt></ruby> 是两个重要的机器学习模型。从长远来看，任何立志于从事人工智能或机器学习领域工作的人都需要学习它们，并了解实现它们的各种技术。这里我认为有必要简单说明两种模型之间的区别了。假设有两个人分别叫 A 和 B，他们要把苹果和橘子分成两组。他们从未见过苹果或橘子。他们都通过 100 张苹果和橘子的图片来学习这两种水果的特征（这个过程称为模型的训练）。不过 A 还有照片中哪些是苹果哪些是橘子的额外信息（这个额外信息称为标签）。这里 A 就像是一个监督学习模型，B 就像是无监督学习模型。你认为在是识别苹果和橘子的任务上，谁的效果更好呢？大多数人可能会认为 A 的效果更好。但是根据机器学习的理论，情况并非总是如此。如果这 100 张照片中只有 5 张是苹果，其它都是橘子呢？那么 A 可能根本就不熟悉苹果的特征。或者如果部分标签是错误的呢？在这些情况下，B 的表现可能比 A 更好。

在实际的机器学习应用中会发生这样的情况吗？是的！训练模型用的数据集可能是不充分的或者不完整的。这是两种模型都仍然在人工智能和机器学习领域蓬勃发展的众多原因之一。在后续文章中，我们将更正式地讨论它们。下面我们开始学习使用 JupyterLab，它是一个用于开发人工智能程序的强大工具。

### JupyterLab 入门

在本系列的前几篇文章中，为了简单起见，我们一直使用 Linux 终端运行 Python 代码。现在要介绍另一个强大的人工智能工具——JupyterLab。在本系列的第一篇文章中，我们对比了几个候选项，最终决定使用 JupyterLab。它比 Jupyter Notebook 功能更强大，为我们预装了许多库和包，并且易于团队协作。还有一些其它原因，我们将在后续适时探讨它们。

在本系列的第一篇文章中，我们已经学习了如何安装 JupyterLab。假设你已经按文中的步骤安装好了 JupyterLab，使用 `jupyter lab` 或 `jupyter-lab` 命令在会默认浏览器（如 Mozilla Firefox、谷歌 Chrome 等）中打开 JupyterLab。（LCTT 译注：没有安装 JupyterLab 也不要紧，你可以先 [在线试用 JupyterLab](https://jupyter.org/try-jupyter/lab/)）图 1 是在浏览器中打开的 JupyterLab 启动器的局部截图。JupyterLab 使用一个名为 IPython（交互式 Python）的 Python 控制台。注意，IPython 其实可以独立使用，在 Linux 终端运行 `ipython` 命令就可以启动它。

![图 1：JupyterLab 启动器](/data/attachment/album/202312/02/214249mccr4646r2r4muri.png)

现阶段我们使用 JupyterLab 中的 Jupyter Notebook 功能。点击图 1 中用绿框标记的按钮，打开 Jupyter Notebook。这时可能会要求你选择内核。如果你按照本系列第一篇的步骤安装 JupyterLab，那么唯一的可选项就是 Python 3（ipykernel）。请注意，你还可以在 JupyterLab 中安装其它编程语言的内核，比如 C++、R、MATLAB、Julia 等。事实上 Jupyter 的内核相当丰富，你可以访问 [Jupyter 内核清单](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels) 了解更多信息。

![图 2：Jupyter Notebook 窗口](/data/attachment/album/202312/02/214249nlquuvuv0quv7g2g.png)

下面我们快速了解一下 Jupyter Notebook 的使用。图 2 显示的是一个在浏览器中打开的 Jupyter Notebook 窗口。从浏览器标签页的标题可以看出，Jupyter Notebook 打开的文件的扩展名是 `.ipynb`。

在图 2 处可以看到有三个选项，它们表示 Jupyter Notebook 中可以使用的三种类型的单元。“Code”（绿色框） 表示代码单元，它是用来执行代码的。“Markdown” 单元可用于输入说明性的文本。如果你是一名计算机培训师，可以用代码单元和 Markdown 单元来创建交互式代码和解释性文本，然后分享给你的学员。“Raw”（红色框）表示原始数据单元，其中的内容不会被格式化或转换。

和在终端中不同，在 Jupyter Notebook 中你可以编辑并重新运行代码，这在处理简单的拼写错误时特别方便。图 3 是在 Jupyter Notebook 中执行 Python 代码的截图。

![图 3：在 Jupyter Notebook 中执行 Python 代码](/data/attachment/album/202312/02/214249z5jrp8hpj3hpbak8.png)

要在执行代码单元中的代码，先选中该单元格，然后点击蓝框标记的按钮。图 3 中用红框标记的是 Markdown 单元，用绿框标记的是代码单元，用黄框标记的执行代码的输出。在这个例子中，Python 代码输出的是 π 的值。

前面提到，JupyterLab 默认安装了许多库和包，我们不用自己安装了。你可以使用 `import` 命令将这些库导入到代码中。使用 `!pip freeze` 命令可以列出 JupyterLab 中目前可用的所有库和包。如果有库或包没有安装，大多数情况下都可以通过 `pip install <全小写的库或者包的名称>` 来安装它们。例如安装 TensorFlow 的命令是 `pip install tensorflow`。如果后面有库的安装命令不遵循这个格式，我会进行特别说明。随着本系列的继续，我们还会看到 Jupyter Notebook 和 JupyterLab 更多强大的功能。

### 复杂的矩阵运算

通过下面的代码，我们来了解一些更复杂的矩阵运算或操作。为了节省空间，我没有展示代码的输出。

```
import numpy as np
A = np.arr ay([[1,2,3],[4,5,6],[7,8,88]])
B = np.arr ay([[1,2,3],[4,5,6],[4,5,6]])
print(A.T)
print(A.T.T)
print(np.trace(A))
print(np.linalg.det(A))
C = np.linalg.inv(A)
print(C)
print(A@C)

```

下面我逐行来解释这些代码：

1. 导入 NumPy 包。
2. 创建矩阵 `A`。
3. 创建矩阵 `B`。
4. 打印矩阵 `A` 的<ruby> 转置 <rt>  transpose </rt></ruby>。通过比较矩阵 `A` 与 `A` 的转置，你用该可以大致理解转置操作到底做了什么。
5. 打印 `A` 的转置的转置。可以看到它和矩阵 `A` 是相同的。这又提示了转置操作的含义。
6. 打印矩阵 `A` 的 <ruby> 迹 <rt>  trace </rt></ruby>。迹是矩阵的对角线（也称为主对角线）元素的和。矩阵 `A` 的主对角线元素是 1、5 和 88，所以输出的值是 94。
7. 打印 `A` 的<ruby> 行列式 <rt>  determinant </rt></ruby>。当执行代码的结果是 -237.00000000000009（在你的电脑中可能略有区别）。因为行列式不为 0，所以称 A 为<ruby> 非奇异矩阵 <rt>  non-singular matrix </rt></ruby>。
8. 将矩阵 `A` 的<ruby> 逆 <rt>  inverse </rt></ruby> 保存到矩阵 `C` 中。
9. 打印矩阵 `C`。
10. 打印矩阵 `A` 和 `C` 的乘积。仔细观察，你会看到乘积是一个<ruby> 单位矩阵 <rt>  identity matrix </rt></ruby>，也就是一个所有对角线元素都为 1，所有其它元素都为 0 的矩阵。请注意，输出中打印出的不是精确的 1 和 0。在我得到的答案中，有像 -3.81639165e-17 这样的数字。这是浮点数的科学记数法，表示 -3.81639165 × 10 -17， 即小数的 -0.0000000000000000381639165，它非常接近于零。同样输出中的其它数字也会有这种情况。我强烈建议你了解计算机是怎样表示浮点数的，这对你会有很大帮助。

根据第一篇文章中的惯例，可以将代码分成基本 Python 代码和人工智能代码。在这个例子中，除了第 1 行和第 9 行之外的所有代码行都可以被看作是人工智能代码。

现在将第 4 行到第 10 行的操作应用到矩阵 B 上。从第 4 行到第 6 行代码的输出没有什么特别之处。然而运行第 7 行时，矩阵 `B` 的行列式为 0，因此它被称为<ruby> 奇异矩阵 <rt>  singular matrix </rt></ruby>。运行第 8 行代码会给产生一个错误，因为只有非奇异矩阵才存在逆矩阵。你可以尝试对本系列前一篇文章中的 8 个矩阵都应用相同的操作。通过观察输出，你会发现矩阵的行列式和求逆运算只适用于方阵。

方阵就是行数和列数相等的矩阵。在上面的例子中我只是展示了对矩阵执行各种操作，并没有解释它们背后的理论。如果你不知道或忘记了矩阵的转置、逆、行列式等知识的话，你最好自己学习它们。同时你也应该了解一下不同类型的矩阵，比如单位矩阵、对角矩阵、三角矩阵、对称矩阵、斜对称矩阵。维基百科上的相关文章是不错的入门。

现在让我们来学习<ruby> 矩阵分解 <rt>  matrix decomposition </rt></ruby>，它是更复杂的矩阵操作。矩阵分解与整数的因子分解类似，就是把一个矩阵被写成其它矩阵的乘积。下面我通过图 4 中整数分解的例子来解释矩阵分解的必要性。代码单元开头的 `%time` 是 Jupyter Notebook 的<ruby> 魔法命令 <rt>  magic command </rt></ruby>，它会打印代码运行所花费的时间。`**` 是 Python 的幂运算符。基本的代数知识告诉我们，变量 a 和 b 的值都等于 (6869 x 7873) 100。但图 4 显示计算变量 b 的速度要快得多。事实上，随着底数和指数的增大，执行时间的减少会越来越明显。

![图 4：Python 代码的执行耗时](/data/attachment/album/202312/02/214250ldyzgei9i0y01wwz.png)

在几乎所有的矩阵分解技术技术中，原始矩阵都会被写成更稀疏的矩阵的乘积。<ruby> 稀疏矩阵 <rt>  sparse matrix </rt></ruby>是指有很多元素值为零的矩阵。在分解后，我们可以处理稀疏矩阵，而不是原始的具有大量非零元素的<ruby> 密集矩阵 <rt>  dense matrix </rt></ruby>。在本文中将介绍三种矩阵分解技术——LUP 分解、<ruby> 特征分解 <rt>  eigen decomposition </rt></ruby>和<ruby> 奇异值分解 <rt>  singular value decomposition </rt></ruby>（SVD）。

为了执行矩阵分解，我们需要另一个强大的 Python 库，SciPy。SciPy 是基于 NumPy 库的科学计算库，它提供了线性代数、积分、微分、优化等方面的函数。首先，让我们讨论 LUP 分解。任何方阵都能进行 LUP 分解。LUP 分解有一种变体，称为 LU 分解。但并不是所有方阵都能 LU 分解。因此这里我们只讨论 LUP 分解。

在 LUP 分解中，矩阵 A 被写成三个矩阵 L、U 和 P 的乘积。其中 L 是一个<ruby> 下三角矩阵 <rt>  lower triangular matrix </rt></ruby>，它是主对角线以上的所有元素都为零的方阵。U 是一个<ruby> 上三角矩阵 <rt>  upper triangular matrix </rt></ruby>，它是主对角线以下所有元素为零的方阵。P 是一个<ruby> 排列矩阵 <rt>  permutation matrix </rt></ruby>。这是一个方阵，它的每一行和每一列中都有一个元素为 1，其它元素的值都是 0。

现在看下面的 LUP 分解的代码。

```
import numpy as np
import scipy as sp
A=np.array([[11,22,33],[44,55,66],[77,88,888]])
P, L, U = sp.linalg.lu(A)
print(P)
print(L)
print(U)
print(P@L@U)

```

图 5 显示了代码的输出。第 1 行和第 2 行导入 NumPy 和 SciPy 包。在第 3 行创建矩阵 `A`。请记住，我们在本节中会一直使用矩阵 `A`。第 4 行将矩阵 `A` 分解为三个矩阵——`P`、`L` 和 `U`。第 5 行到第 7 行打印矩阵 `P`、`L` 和 `U`。从图 5 中可以清楚地看出，`P` 是一个置换矩阵，`L` 是一个下三角矩阵，`U` 是一个上三角矩阵。最后在第 8 行将这三个矩阵相乘并打印乘积矩阵。从图 5 可以看到乘积矩阵 `P@L@U` 等于原始矩阵 `A`，满足矩阵分解的性质。此外，图 5 也验证了矩阵 `L`、`U` 和 `P` 比矩阵 `A` 更稀疏。

![图 5：用 SciPy 进行 LUP 分解](/data/attachment/album/202312/02/214250k03rc0f4vxf0l2zq.png)

下面我们讨论特征分解，它是将一个方阵是用它的<ruby> 特征值 <rt>  eigenvalue </rt></ruby>和<ruby> 特征向量 <rt>  eigenvector </rt></ruby>来表示。用 Python 计算特征值和特征向量很容易。关于特征值和特征向量的理论解释超出了本文的讨论范围，如果你不知道它们是什么，我建议你通过维基百科等先了解它们，以便对正在执行的操作有一个清晰的概念。图 6 中是特征分解的代码。

![图6：用 SciPy 进行特征分解](/data/attachment/album/202312/02/214250fykyqgxqggxqx15g.png)

在图 6 中，第 1 行计算特征值和特征向量。第 2 行和第 3 行输出它们。注意，使用 NumPy 也能获得类似的效果，`Lambda, Q = np.linalg.eig(A)`。这也告诉我们 NumPy 和 SciPy 的功能之间有一些重叠。第 4 行重建了原始矩阵 A。第 4 行中的代码片段 `np.diag(Lambda)` 是将特征值转换为对角矩阵（记为 `Λ`）。对角矩阵是主对角线以外的所有元素都为 0 的矩阵。第 4 行的代码片段 `sp.linalg.inv(Q)` 是求 `Q` 的逆矩阵（记为 Q -1）。最后，将三个矩阵 `Q`、`Λ`、`Q` -1 相乘得到原始矩阵 `A`。也就是在特征分解中 `A=QΛQ` -1。

图 6 还显示了执行的代码的输出。红框标记的是特征值，用绿框标记的是特征向量，重构的矩阵 A 用蓝框标记。你可能会感到奇怪，输出中像 11.+0.j 这样的数字是什么呢？其中的 j 是虚数单位。11.+0.j 其实就是 11.0+0.0j，即整数 11 的复数形式。

现在让我们来看奇异值分解（SVD），它是特征分解的推广。图 7 显示了 SVD 的代码和输出。第 1 行将矩阵 `A` 分解为三个矩阵 `U`、`S` 和 `V`。第 2 行中的代码片段 `np.diag(S)` 将 `S` 转换为对角矩阵。最后，将这三个矩阵相乘重建原始矩阵 `A`。奇异值分解的优点是它可以对角化非方阵。但非方阵的奇异值分解的代码稍微复杂一些，我们暂时不在这里讨论它。

![图 7：用 SciPy 进行 奇异值分解](/data/attachment/album/202312/02/214250dzn90czx0f4un5ml.png)

### 其它人工智能和机器学习的 Python 库

当谈到人工智能时，普通人最先想到的场景可能就是电影《终结者》里机器人通过视觉识别一个人。<ruby> 计算机视觉 <rt>  computer vision </rt></ruby>是人工智能和机器学习技术被应用得最广泛的领域之一。下面我将介绍两个计算机视觉相关的库：OpenCV 和 Matplotlib。OpenCV 是一个主要用于实时计算机视觉的库，它由 C 和 C++ 开发。C++ 是 OpenCV 的主要接口，它通过 OpenCV-Python 向用户提供 Python 接口。Matplotlib 是基于 Python 的绘图库。我曾在 OSFY 上的一篇早期 [文章](https://www.opensourceforu.com/2018/05/scientific-graphics-visualisation-an-introduction-to-matplotlib) 中详细介绍了 Matplotlib 的使用。

前面我一直在强调矩阵的重要性，现在我用一个实际的例子来加以说明。图 8 展示了在 Jupyter Notebook 中使用 Matplotlib 读取和显示图像的代码和输出。如果你没有安装 Matplotlib，使用 `pip install matplotlib` 命令安装 Matplotlib。

![图 8：用 Matplotlib 读取和显示图像](/data/attachment/album/202312/02/214250vlplk6uuuq5qwd6h.png)

在图 8 中，第 1 行和第 2 行从 Matplotlib 导入了一些函数。注意你可以从库中导入单个函数或包，而不用导入整个库。这两行是基本的 Python 代码。第 3 行从我的计算机中读取标题为 `OSFY-Logo.jpg` 的图像。我从 OSFY 门户网站的首页下载了这张图片。此图像高 80 像素，宽 270 像素。第 4 行和第 5 行在 Jupyter Notebook 窗口中显示图像。请注意图像下方用红框标记的两行代码，它的输出告诉我们变量 `image` 实际上是一个 NumPy 数组。具体来说，它是一个 80 x 270 x 3 的三维数组。

数组尺寸中的 80 x 270 就是图片的大小，这一点很容易理解。但是第三维度表示什么呢？这是因计算机像通常用 RGB 颜色模型来存储的彩色图。它有三层，分别用于表示红绿蓝三种原色。我相信你还记得学生时代的实验，把原色混合成不同的颜色。例如，红色和绿色混合在一起会得到黄色。在 RGB 模型中，每种颜色的亮度用 0 到 255 的数字表示。0 表示最暗，255 表示最亮。因此值为 `(255,255,255)` 的像素表示纯白色。

现在，执行代码 `print(image)`， Jupyter Notebook 会将整个数组的一部分部分打印出来。你可以看到数组的开头有许多 255。这是什么原因呢？如果你仔细看 OSFY 的图标会发现，图标的边缘有很多白色区域，因此一开始就印了很多 255。顺便说一句，你还可以了解一下其他颜色模型，如 CMY、CMYK、HSV 等。

现在我们反过来从一个数组创建一幅图像。首先看图 9 中所示的代码。它展示了如何生成两个 3 x 3 的随机矩阵，它的元素是 0 到 255 之间的随机值。注意，虽然相同的代码执行了两次，但生成的结果是不同的。这是通过调用 NumPy 的伪随机数生成器函数 `randint` 实现的。实际上，我中彩票的几率都比这两个矩阵完全相等的几率大得多。

![图 8：两个随机矩阵](/data/attachment/album/202312/02/214251nen3p3xz72dek2e5.png)

接下来我们要生成一个形状为 512 x 512 x 3 的三维数组，然后将它转换为图像。为此我们将用到 OpenCV。注意，安装 OpenCV 命令是 `pip install opencv-python`。看下面的代码：

```
import cv2
img = np.random.randint(0, 256, size=(512, 512, 3))
cv2.imwrite('img.jpg', img)

```

第 1 行导入库 OpenCV。注意导入语句是 `import cv2`，这与大多数其他包的导入不同。第 3 行将矩阵 img 转换为名为 `img.jpg` 的图像。图 10 显示了由 OpenCV 生成的图像。在系统中运行这段代码，将图像将被保存在 Jupyter Notebook 的同一目录下。如果你查看这张图片的属性，你会看到它的高度是 512 像素，宽度是 512 像素。通过这些例子，很容易看出，任何处理计算机视觉任务的人工智能和机器学习程序使用了大量的数组、向量、矩阵以及线性代数中的思想。这也是本系列用大量篇幅介绍数组、向量和矩阵的原因。

![图 10：OpenCV 生成的图像](/data/attachment/album/202312/02/214251nav9dcdskvz69odd.png)

最后，考虑下面显示的代码。`image.jpg` 输出图像会是什么样子？我给你两个提示。函数 `zeros` 在第 4 行和第 5 行创建了两个 512 x 512 的数组，其中绿色和蓝色填充了零。第 7 行到第 9 行用来自数组 `red`、`green` 和 `blue` 的值填充三维数组 `img1`。

```
import numpy as np
import cv2
red = np.random.randint(0, 256, size=(512, 512))
green = np.zeros([512, 512], dtype=np.uint8)
blue = np.zeros([512, 512], dtype=np.uint8)
img1 = np.zeros([512,512,3], dtype=np.uint8)
img1[:,:,0] = blue
img1[:,:,1] = green
img1[:,:,2] = red
cv2.imwrite(‘image.jpg’, img1)

```

本期的内容就到此结束了。在下一篇文章中，我们将开始简单地学习<ruby> 张量 <rt>  tensor </rt></ruby>，然后安装和使用 TensorFlow。TensorFlow 是人工智能和机器学习领域的重要参与者。之后，我们将暂时放下矩阵、向量和线性代数，开始学习概率论。概率论跟线性代数一样是人工智能的重要基石。

*（题图：MJ/ec8e9a02-ae13-4924-b6cb-74ef96ab8af9）*

---

via: <https://www.opensourceforu.com/2023/07/ai-a-few-more-useful-python-libraries/>

作者：[Deepu Benson](https://www.opensourceforu.com/author/deepu-benson/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[toknow-gh](https://github.com/toknow-gh) 校对：[wxy](https://github.com/wxy)

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


开源网页邮箱服务 Roundcube 加入 Nextcloud

Summary: Roundcube 现在正与 Nextcloud 合作以迎接未来。

![](/data/attachment/album/202312/02/223230wr7y7ag3gug37jyt.jpg)

>
> Roundcube 现在正与 Nextcloud 合作以迎接未来。
>
>
>

Roundcube，作为最好的 [开源网页邮箱服务](https://itsfoss.com/open-source-web-based-email-clients/) 之一，决定与 [Nextcloud](https://nextcloud.com/) 合作，后者是一个倍受欢迎的开源协作平台，以其协作工具套件而知名。

**电子邮件的重要性与日俱增** ，而谷歌和微软等公司正试图垄断市场，这一联手合作的决定显得颇有战略意义。

让我来详细介绍一下。

### Roundcube 的新家

![](/data/attachment/album/202312/02/223256igb4hud6zxg4s246.png)

这就是 Nextcloud 的 CEO，Frank Karlitschek，关于此次合作的描述：

>
> 未来，**Nextcloud 将提供必要的资源**，比如 **项目托管** 、**引入人才的投资** 、**帮助开发**，以及围绕 Roundcube **培育社区**。
>
>
>

最重要的是，[Roundcube](https://roundcube.net/) **不会取代** [Nextcloud Mail](https://apps.nextcloud.com/apps/mail)；它们将作为独立的网页邮箱解决方案并存。

Frank 强调 Roundcube 是一个被许多人使用的重要的开源项目，而 Nextcloud Mail 是**一款强大的邮箱客户端**，但是没有合并它们的计划。

你可能会好奇，**为什么会发生这个变化？**

嗯，Roundcube 的创始人和维护者 Thomas Brüderli **作出了退出的决定**。当被问到原因时，他如此回答：

>
> 自从孩子出生后，我如何安排我非工作的时间的关注力显然转向了家庭生活，因此我逐渐停止了贡献，也对项目的新动态失去了跟踪。
>
>
> Roundcube 项目需要一个更好，更专注的领导，因此是时候让我退后，放手了。
>
>
>

许多人都能理解这种情况，很高兴看到 Thomas 将他心爱的项目交给了能够维持它发展的人。

我必须说，**我对这个消息感到惊讶**，作为多年来一直在工作场所使用 Roundcube 作为网页邮箱的用户，我亲眼见证了它自 2018 年以来的成长与变迁。

我很高兴这个项目得到了它应得的关注和关怀。

此外，我建议你浏览一下 [官方博客](https://nextcloud.com/blog/open-source-email-pioneer-roundcube-comes-aboard-nextcloud/) 以及链接在其中的采访，以了解更多关于此次合并的信息。

? 你怎么看？这将如何影响未来的运作？

---

via: <https://news.itsfoss.com/nextcloud-roundcube/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1204 Chrome 还有打击广告拦截器的下一个武器

Summary:
? Chrome 还有打击广告拦截器的下一个武器
? Java 尝试使用多线程的新方法
? 研究称 GPT-4 没有通过图灵测试

»
»

![](/data/attachment/album/202312/03/181528zs9vurhqtrzu2kk3.jpg)

![](/data/attachment/album/202312/03/181541fdv975ggp981621t.png)

### #1 Chrome 还有打击广告拦截器的下一个武器

为了打击浏览器上的广告拦截器，Chrome 不但计划在 2024 年 6 月推出限制广告拦截的 Manifest V3 扩展平台，而且还会限制扩展更新过滤规则的方式，以延迟扩展开发者快速响应变化的能力。YouTube 可以立即更换广告投放系统，但一旦 Manifest V3 成为强制规定，扩展开发者就无法立即做出响应。如今，广告拦截器和隐私应用可以自行更新过滤列表，通常使用的是巨大的开源社区的列表。Manifest V3 将通过限制谷歌所说的 “远程托管代码” 来阻止这种情况。所有更新，即使是像过滤列表这样的良性更新，都需要通过 Chrome 商店进行全面的扩展更新。这些更新都需要经过 Chrome 网上应用商店的审核过程，而这将带来很大的时间延迟。

>
> **[消息来源：Ars Technica](https://arstechnica.com/google/2023/12/chromes-next-weapon-in-the-war-on-ad-blockers-slower-extension-updates/)**
>
>
>

>
> 老王点评：对谷歌的反垄断审查更严厉些吧。
>
>
>

![](/data/attachment/album/202312/03/181557ey488xrkorrknyy8.png)

### #2 Java 尝试使用多线程的新方法

在 Java 21 的预览版本中，Java 尝试了多线程的新方法：结构化并发。该方法允许开发者使用结构化编程语法来使用多个线程。从本质上讲，它提供了一种使用熟悉的程序流程和结构编写并发软件的方法。这样，开发人员就可以专注于手头的业务，而不是线程的协调。虚拟线程现已成为 Java 的一项正式功能，它为廉价生成线程以获得并发性能提供了可能。结构化并发为此提供了简单的语法。因此，Java 现在拥有了一个独特的、高度优化的、易于理解的线程系统。

>
> **[消息来源：Info World](https://www.infoworld.com/article/3711361/get-started-with-javas-new-structured-concurrency-model.html)**
>
>
>

>
> 老王点评：这是一个很好的消息，值得关注。
>
>
>

![](/data/attachment/album/202312/03/181617l93t743t88f37w37.png)

### #3 研究称 GPT-4 没有通过图灵测试

在一篇题为 《GPT-4 通过图灵测试了吗？》的预印本研究论文中，研究人员将 GPT-4 人工智能语言模型与人类参与者、GPT-3.5 和 ELIZA 进行了对比。其中，ELIZA 是一个上世纪 60 年代开发的基于规则的对话程序。研究人员建立了一个名为 turingtest.live 的网站，他们在该网站上通过互联网举办了一场双人图灵测试。通过该网站，人类审讯者与代表其他人类或人工智能模型的各种 “人工智能证人” 进行互动。令人惊讶的是，ELIZA 在研究中得分相对较高，成功率达到 27%，超过了 GPT-3.5 的 14% 成功率。GPT-4 的成功率为 41%，但就连 GPT-4 也不符合图灵测试的成功标准，既没有达到 50% 的成功率，也没有超过人类参与者的成功率。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2023/12/real-humans-appeared-human-63-of-the-time-in-recent-turing-test-ai-study/)**
>
>
>

>
> 老王点评：虽然这个结果令人吃惊，但是我倾向于研究方法有误，比如没有很好地设计符合 GPT 方式的提示语。
>
>
>


Cinnamon 6.0 首次推出实验性 Wayland 支持！

Summary: Cinnamon 6.0 与 Wayland 会话听起来很有趣！

wayland的普及还需要应用的支持，在gnome的wayland下x11vnc并不支持，只能在x11下继续使用

![](/data/attachment/album/202312/04/164511pkgkgjku6m26mfvv.jpg)

>
> Cinnamon 6.0 与 Wayland 会话听起来很有趣！
>
>
>

[Cinnamon 成为出色的 Linux 桌面环境](https://itsfoss.com/why-cinnamon/) 有很多原因，Linux 社区喜爱 [Linux Mint](https://linuxmint.com/) 部分归功于它。

它提供的用户体验和 [定制 Cinnamon Desktop 的各种方法](https://itsfoss.com/customize-cinnamon-desktop/) 吸引了用户。

现在，这个桌面环境升级了，Cinnamon 6.0 来了。那么，让我们来看看吧。

### Cinnamon 6.0：可以期待什么？ ?

![Cinnamon 6.0 on Wayland](/data/attachment/album/202312/04/164540fy3t22hzhc8qlb43.png)

Cinnamon 6.0 的一大亮点就是**Wayland**。这项功能 [酝酿](https://blog.linuxmint.com/?p=4591) 已久，现在作为**实验支持**出现。

从 Linux Mint 21.3 开始，你可以从登录屏幕切换到 Wayland 会话。

除了人们可能期望从 Wayland 获得的通常的细节之外，似乎还有**对分数缩放的实验性支持**，这一点从该版本的“添加缩放监视器帧缓冲区”提交中可以明显看出。

不过，开发人员已澄清，**Wayland 尚未取代 Cinnamon 上的 X11**。因为他们对 Wayland 的实现有其局限性，甚至缺乏一些功能。

但是，这只是一个起点，开发人员预计 **Wayland 支持将在 2026 年之前完全准备就绪**，也就是 Linux Mint 23.x 预计发布的时间。

>
> ? 你可以从登录屏幕在默认 Xorg 会话或 Wayland 会话之间切换。
>
>
>

继续，此版本还有其他更改！

例如**修复电源小程序电池状态**、**X11 的改进**、**支持 AVIF 图像**、**通知屏幕的新选项**、**颜色选择器支持截图工具**等等。

你可以浏览 [变更日志](https://github.com/linuxmint/cinnamon/commit/448a1fc6753079916b8bf036aeb40b049652b72e) 以了解有关 Cinnamon 6.0 的技术改进的更多信息。发布公告发布后，我们将在此处链接。

有趣的是，许多 Linux 发行版（比如 elementary OS）都在努力将默认设置过渡到 Wayland。

但是，Cinnamon 的开发人员正在采取一种相当谨慎的方法，以确保在 Cinnamon 默认切换到 Wayland 之前，他们的 Wayland 实现已经完全就绪。

### ? 获取 Cinnamon 6.0

好吧，如果你想在 Linux Mint 上运行它，则必须等到今年晚些时候，**Linux Mint 21.3 “Virginia”** 发布，其中包含 Cinnamon 6。

对于那些等不及的人，你可以从官方 [GitHub 仓库](https://github.com/linuxmint/cinnamon/releases/tag/6.0.0) 下载源代码 tarball，并手动安装。

>
> **[Cinnamon 6.0（源代码）](https://github.com/linuxmint/cinnamon/releases/tag/6.0.0)**
>
>
>

? 你对 Cinnamon 6 提供的功能感到兴奋吗？

---

via: <https://news.itsfoss.com/cinnamon-6-0-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Linux 爱好者线下沙龙：LLUG 2023·北京，相聚在这个冬日

Summary: 从夏天到冬天，LLUG 线下活动再次回到北京，与你相遇在北京。

从夏天到冬天，LLUG 线下活动再次回到北京，与你相遇在北京。

![](/data/attachment/album/202312/04/170847epx4x3lx4xtt74d3.png)

从夏天到冬天，LLUG 线下活动再次回到北京，与你相遇在北京。半年来，我们走过了全国 5 座不同的城市，汇聚了 200+ 小伙伴；数十位分享者，线上线下畅聊无阻，我们相聚在这钢筋水凝土所构建的城市里，在线下谈工作、谈理想，寻找心灵的共鸣。

也在线下，我们结下了一段段羁绊，收获了一场场温暖。

12 月 16 日，老王也将来到现场，和我们一起畅聊 Linux，畅聊技术。

![](/data/attachment/album/202312/04/170302ty9ivccviv4hn4fv.jpg)

*杭州场现场照片*

![成都场现场照片](/data/attachment/album/202312/04/170249vv9anzxguj7ss9pv.jpg "成都场现场照片")

*成都场现场照片*

![深圳场现场照片](/data/attachment/album/202312/04/170227bp15s6w2hts1wz1h.jpg "深圳场现场照片")

*深圳场现场照片*

![上海场现场照片](/data/attachment/album/202312/04/170125sn6l1zxz3to49v03.jpg "上海场现场照片")

*上海场现场照片*

本次活动，我们将设常规的技术分享、动手实践和闪电演讲三种不同分享的形态。

* 技术分享会邀请来自 Linux 社区的开发者，分享自己在 Linux 中的技术实践，并配合 Q&A 的环节，帮助大家理解技术难点和实践，如果你有经验和实践想要分享给大家，欢迎报名分享
* 动手实践则会有来自各厂商的 Linux 大咖，带着大家用半个小时的时间来动手实践一个 Linux 主题，帮助大家动手体验 Linux 的种种新特性、特定的能力。
* 闪电演讲则不设定主题，每个人有 5 分钟时间来分享自己与 Linux、技术、开源有关的话题，共计 6 个闪电演讲名额，想要试试锻炼自己的演讲能力，不妨从闪电演讲开始。

如果你对于参与活动感兴趣，或者是想要来到 LLUG 的活动上分享你的技术实践，欢迎扫描下方的二维码报名活动，抑或是提交议题～

![](/data/attachment/album/202312/04/170316v0p6epwi83upuaaw.png)

（题图：MJ/cc68cd82-d9c9-464c-bfb5-73956e71f6ea）


硬核观察 #1205 苹果用 15 年完成了英特尔芯片替代

Summary:
? 苹果用 15 年完成了英特尔芯片替代
? 物理学家可能发现了大型量子计算机性能的硬限制
? 电子前线基金会发布《隐私优先》白皮书
»
»

最晚在2013年就看到苹果可能在Mac换用ARM芯片的新闻，当时大家都怀疑，因为那时ARM性能不行（现在也没好到哪里去），最多只有MacBook Air可能会换。

![](/data/attachment/album/202312/04/195655p1a98k84w39qk9qy.jpg)

![](/data/attachment/album/202312/04/195703f61s1f87fd1nfp3r.png)

### #1 苹果用 15 年完成了英特尔芯片替代

苹果的芯片实验室已经成立了 15 周年，拥有在世界各地的实验室工作的数千名工程师。从今年起，所有新款 Mac 电脑都将采用苹果自己的芯片，从而结束了该公司对英特尔 15 年来的依赖。但在成立十余年后的 2020 年，苹果公司才开始放弃使用英特尔的 PC 处理器，转而在 MacBook Air 和其他 Mac 内使用自己的 M1 芯片。突然之间，苹果制造出一款无比轻薄、没有风扇、电池续航时间长达 18 小时的 MacBook Air，而且性能超过了刚刚出货的 MacBook Pro。而配备苹果最先进芯片 M3 Max 的最新 MacBook Pro 比之前生产的最快英特尔 MacBook Pro 快 11 倍。

>
> **[消息来源：CNBC](https://www.cnbc.com/2023/12/01/how-apple-makes-its-own-chips-for-iphone-and-mac-edging-out-intel.html)**
>
>
>

>
> 老王点评：强如苹果，从头开始也用了十几年才打造出自己的取代芯片。
>
>
>

![](/data/attachment/album/202312/04/195722o7yjytdcchitdny6.png)

### #2 物理学家可能发现了大型量子计算机性能的硬限制

《物理评论快报》上的一篇新报告指出，对于基于电路的量子计算来说，可实现的电路复杂度受到计时质量的限制。维也纳技术大学解释说，该研究小组能够证明，由于任何时钟都不可能拥有无限量的可用能量（或产生无限量的熵），因此它永远不可能同时拥有完美的分辨率和完美的精度。这为量子计算机的可能性设置了根本性的限制。目前，量子计算机的精确度仍然受到其他因素的限制，例如所用元件的精度或电磁场。但该计算表明，今天我们离时间测量的基本限制发挥决定性作用的机制已经不远了。

>
> **[消息来源：Science Alert](https://www.sciencealert.com/physics-prevents-us-from-making-the-perfect-clock-heres-why-thats-a-problem)**
>
>
>

>
> 老王点评：或许，到时候会有新的量子计算机的设计？就像在真空管计算机时代是无法想象现在的超大规模集成电路的计算机一样。
>
>
>

![](/data/attachment/album/202312/04/195754q4qypjzd3dbbq44d.png)

### #3 电子前线基金会发布《隐私优先》白皮书

电子前线基金会（EFF）发布了一份新的白皮书《隐私优先》，它认为一部全面的隐私法必须包括以下内容：无在线行为广告；数据最小化；选择同意；用户访问、移植、更正和删除信息的权利；不优先适用州法律；具有私人诉讼权的强力执法；无付费隐私计划；无欺骗性设计。

>
> **[消息来源：EFF](https://www.eff.org/deeplinks/2023/11/address-online-harms-we-must-first-do-privacy)**
>
>
>

>
> 老王点评：这样的隐私法，简直就是对现在的数字经济赤裸裸的打脸。
>
>
>


在 Ubuntu 中更改键盘布局

![](/data/attachment/album/202312/05/160115uz3s3y093fak0za9.png)

>
> 在 Ubuntu 中拥有多个键盘布局并在它们之间切换非常简单。下面就教你怎么做。
>
>
>

当 [你安装Ubuntu](https://itsfoss.com/install-ubuntu/) 时，你可以选择键盘布局。你可能已经默认选择了美国英语布局，现在你想将其更改为英国英语、印度英语或你选择的任何其他键盘布局。

好在你可以在同一个 Ubuntu 系统中拥有多种键盘布局。这是相当方便的。

在本教程中，你将学习：

* 在 Ubuntu 桌面中添加新的键盘布局
* 在可用键盘布局之间切换
* 删除额外的键盘布局
* 改变键盘布局的命令行方法

### 步骤 1：添加新的键盘布局

要更改键盘布局，你需要先在系统上启用另一个键盘布局。

进入系统设置。按 Ubuntu 中的 `Super` 键（Windows 键）并搜索“Setting”。

![](/data/attachment/album/202312/05/160144injsdaa4qpdia2db.png)

在系统设置中，在左侧边栏中查找 <ruby> 键盘 <rt>  Keyboard </rt></ruby>。选择后，你应该会在 <ruby> 输入源 <rt>  Input Sources </rt></ruby> 下看到添加新键盘布局的选项。单击 “+” 号。

![Add new keyboard layout](/data/attachment/album/202312/05/160144vzmvu5bee570b3r5.png)

你将看到一些键盘选项，但如果单击三个点，你可以获得更多选项。你可以在此处滚动浏览或搜索。

![There are more keyboard layouts available](/data/attachment/album/202312/05/160145c9m9x5rxpx7kagx6.png)

单击你想要的键盘布局。请记住，所选的键盘布局可能有子布局。

例如，当我单击\*\*英语（印度）**时，它会向我显示从丹麦到加纳等的一些英语键盘布局。在这里，我选择了**英语（印度，卢比）\*\*键盘。这是将要添加的键盘布局。

![](/data/attachment/album/202312/05/160145c3o2m5n35mywtmpm.png)

你将在“输入源”下看到新添加的键盘布局。

![](/data/attachment/album/202312/05/160146bipxixuooxcwpsab.png)

这与我之前在 [Ubuntu 中添加印地语键盘布局](https://itsfoss.com/type-indian-languages-ubuntu/) 时使用的方法相同。

### 步骤 2：切换键盘布局

这样，你就成功添加了另一个键盘布局。但它没有被使用。你必须在可用的输入源之间切换。

有两种方法可以做到这一点。

#### 方法 1：同时使用 Super+Space 键

切换键盘布局的更快方法是 [使用键盘快捷键](https://itsfoss.com/ubuntu-shortcuts/) ，同时按 `Super` 键（Windows 键）和空格键。它将立即显示所有启用的键盘布局。

![](/data/attachment/album/202312/05/160146k4epkq6ske2s97ci.png)

你可以在按住 `Super` 键的同时多次按空格键在可用选项之间移动。

#### 方法 2：使用鼠标切换键盘布局

记住所有这些键盘快捷键并不容易，这是可以理解的。

当你在系统上启用多个键盘布局时，你会注意到键盘布局名称显示在面板的右上角。单击它，你将看到在布局之间切换的选项或查看所选的键盘布局。

![Switch between keyboard layouts](/data/attachment/album/202312/05/160146m4rr20zd06vbu2t9.png)

### 额外提示：删除额外的键盘布局

不喜欢系统中的多个键盘布局？ 不用担心。你可以轻松删除它们。

如你之前所见，再次进入键盘设置。单击你选择的键盘旁边的三个垂直点符号。你应该在这里看到删除选项。

![](/data/attachment/album/202312/05/160147dizpzbbld2bp3ifz.png)

### 使用命令行更改键盘布局（不推荐）

如果你是桌面用户，我强烈推荐上面讨论的图形方法。

如果你在服务器上并且必须使用其他键盘布局，则可以选择命令行。

现在，有多种方法可以更改 Linux 中的键盘布局。但对于 Ubuntu，我更喜欢 [dpkg](https://wiki.debian.org/dpkg) 方式。

```
sudo dpkg-reconfigure keyboard-configuration

```

输入你的密码，你将在终端中看到：

![](/data/attachment/album/202312/05/160147onnoyqnwzwkqkqwb.png)

要在此 TUI（终端用户界面）中导航，请使用箭头键在可用选项之间移动。**使用 `Tab` 键转至 “OK” 或 “Cancel” 选项**。当你位于其中之一时，请按回车键确认你的选择。

选择你选择的国家/地区，然后你可以选择键盘布局。

![](/data/attachment/album/202312/05/160147mi3vskd3vk9mwybk.png)

添加附加键盘后，系统会要求你分配键盘快捷键以在它们之间进行切换。

![](/data/attachment/album/202312/05/160148zv4fmf0i80m8o0es.png)

你也可以将新键盘布局设置为系统中的默认布局和唯一布局。不过，如果你在不相似的语言之间执行此操作，这可能会存在风险。我的意思是，如果你使用英语美国键盘（物理）并将布局切换为匈牙利语，则你将无法使用所有按键。

之后你会看到几个屏幕。

如果你对新的键盘布局不满意，可以再次键入相同的命令，然后重新配置布局。

*（题图：MJ/f03362cf-72d0-4003-b334-44c533e113a0）*

---

via: <https://itsfoss.com/ubuntu-change-keyboard/>

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

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


硬核观察 #1206 Linus Torvalds 为假期季做准备

Summary:
? Linus Torvalds 为假期季做准备
? IBM 发布了 “实用规模” Heron 量子处理器
? Hugging Face 泄露的 API 令牌可以完全访问 LLaMA 2 仓库
»
»

![](/data/attachment/album/202312/05/173551qgynuxigi8y7acev.jpg)

![](/data/attachment/album/202312/05/173641eu49589953tc3cc2.png)

### #1 Linus Torvalds 为假期季做准备

Torvalds 上周日发布了 Linux 内核 6.7 版本的第四个候选发布版。通常，在发布新版内核之前会提供七个候选发布版。按照这个时间表，RC 7 将在耶诞节前夕发布，而正式版将在 12 月 31 日发布。不过 Torvalds “认为这个时间安排最终是可行的，因为假期在发布计划的结尾”。但是可能是由于 6.7 看起来“非常平静”，他预感“必须在 6.8 版本的合并窗口做些什么”，虽然他还不确定要做的是什么，也不确定是否需要。

>
> **[消息来源：The Register](https://www.theregister.com/2023/12/04/linux_kernel_6_7_rc4/)**
>
>
>

>
> 老王点评：敬业如企鹅皇帝，每年年底也必须得休个假。
>
>
>

![](/data/attachment/album/202312/05/173656u5xhtpc7mthiztvq.png)

### #2 IBM 发布了 “实用规模” Heron 量子处理器

IBM 发布了其量子处理单元（QPU）系列的最新产品 Heron 量子处理器，IBM 声称它已达到了 “实用规模”。Heron 拥有 133 个量子比特，高于前一个型号。IBM 还宣称，与前代产品相比，Heron 的错误率降低了五倍，这一点非常重要。Heron 将为 IBM 的“量子系统二”计算集群提供动力，该集群将量子计算、经典计算和量子比特控制电子设备结合在一个模块化系统中，该计算集群有 5 米高，与许多量子系统一样，需要低温冷却才能运行。IBM 预计将在十年后推出的 QPU 拥有 2000 个量子比特。

>
> **[消息来源：The Register](https://www.theregister.com/2023/12/05/ibm_heron_quantum_processor/)**
>
>
>

>
> 老王点评：像 IBM 这样的百年企业，还在继续不惜代价地投入量子计算机。
>
>
>

![](/data/attachment/album/202312/05/173728rb7454hjl34ihzaf.png)

### #3 Hugging Face 泄露的 API 令牌可以完全访问 LLaMA 2 仓库

研究人员在 Hugging Face 上通过字符串搜索和手动收集发现了 1500 多个泄露的 API 令牌，这使他们能够访问 723 个组织的账户。在绝大多数情况下（655 个），被暴露的令牌具有写入权限，可以修改账户存储库中的文件。共有 77 个组织以这种方式被暴露，其中包括 Meta、EleutherAI 等。Hugging Face 存储了 25 万多个数据集，还有 50 多万个人工智能模型。如果攻击者利用了暴露的 API 令牌，可能会导致数据被盗、训练数据被毒化或模型被完全窃取，从而会影响 100 多万用户。数据中毒攻击是人工智能和机器学习面临的最严重威胁之一，被列入 OWASP 的十大 LLM 风险。

>
> **[消息来源：The Register](https://www.theregister.com/2023/12/04/exposed_hugging_face_api_tokens/)**
>
>
>

>
> 老王点评：在各种公开代码库中，你总是能捡到各种令牌和凭证，即便托管平台一再提醒和防范。
>
>
>


Turbo Pascal 的 40 年，改变了整个 IDE 的编程恐龙

Summary: 它的影响至今仍能感受到。

Turbo Pascal影响了一代人，记得当时河南有个叫经纬软件的开发商，善于运用TP开发了AV杀毒软件，挺有名气的。至于后来的Delphi/C++Builder，那又是一个传奇了。直到今日，Delphi虽然比过去没落了很多，但在桌面应用程序包括工控领域仍然是最快速的应用开发工具。

它的影响至今仍能感受到。

![](/data/attachment/album/202312/05/192646jakv8ovvke0adeaa.png)

>
> 它的影响至今仍能感受到。
>
>
>

自 Turbo Pascal 问世以来已过去 40 年，它凭借在其时先进的集成开发环境（IDE）和超越常规的性能，彻底改写了编程领域的格局。然而，我们现今并未广泛使用它，这是为何呢？

1983 年，Turbo Pascal 的问世，这代表了在 IBM PC 兼容机早期的程序设计工具工作方式的重大变化。相比于传统工作方式下耗时的磁盘访问和多次编译、链接过程，Turbo Pascal 能在内存中直接完成所有操作，让速度大幅提升，因此得名 “Turbo”。

后来在微软参与 C# 项目的 Anders Hejlsberg 被广泛称誉为这门语言的创造者。而 Borland 的老板 Philippe Kahn 第一时间就看中了这个一站式工具的潜力和需求所在。

Turbo Pascal 的价格也相对便宜 —— 在竞争对手可能要花费数百美元的情况下，Turbo Pascal 的零售价只有 49.99 美元。不过，要是客户打算分发二进制文件，其开发商 Borland 仍会额外收取费用。

尽管第一版的 Turbo Pascal 存在一些限制。例如，源代码文件不能超过 64 KB，且仅能为 DOS 和 CP/M 生成 .COM 可执行文件，尽管还支持其他架构和操作系统。它还能从单张软盘启动运行，在一个硬盘代价昂贵、且难以得到，单驱动器成为常态的时代，这省却了用户频繁更换磁盘的麻烦。

仅几个月后，Turbo Pascal 就推出了第二版，此版本进行了一些微小的改动，后续在 1986 年发布了第三版。然而，真正让 Turbo Pascal 有了翻天覆地变化的，是 1987 年的第四版。例如，取消了对 CP/M 和 CP/M-86 的支持，开始在 DOS 环境下生成 .EXE 格式的可执行文件，打破了 .COM 文件的限制。

第四版还引入了带有下拉菜单的全屏文字用户界面。到了 1988 年的第五版，我们看到了熟悉的默认蓝色背景编辑器。在本文作者看来，1989 年的 5.5 版是 Turbo Pascal 的巅峰之作。它引入了面向对象的编程特性，包括类和继承，以及一款逐步调试器。

第六版和第七版分别引入了对内联汇编和用于创建 Windows 可执行文件和 DLL 的支持，但第七版也标志着 Borland 的 Turbo Pascal 到达了终点。尽管后面仍推出了 Turbo Pascal for Windows，但它最终被 Delphi 所取代。

然而，如 Visual Basic 3 这样的工具的火爆，使得 Borland 在 Windows 系统下再未取得过像它在 DOS 下那样的辉煌。

至于 Turbo Pascal，最后 Borland 以免费软件的方式发布了几个版本，包括用于 DOS 的第 1 版，第 5.5 版和第 7 版。

或许这款语言曾引起 Pascal 语言的纯粹主义者们的反感，如今这个 IDE 与现代工具相比可能显得有些笨拙。但在 40 年前，它引发了一个新的开发时代，其影响至今仍能感受到。

*（题图：MJ/9d1f3b17-5b29-429d-8a86-e8520309d8d0）*

---

via: <https://www.theregister.com/2023/12/04/40_years_of_turbo_pascal/>

作者：[Richard Speed](https://www.theregister.com/Author/Richard-Speed) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)


注重隐私的五大网络浏览器

Summary: 这是你可以试用的一些最佳的隐私友好型网络浏览器！

νρη哈哈

来自江苏南京的 Chrome Mobile 99.0|Android 12 用户

【νρη】

可惜只有其中两个浏览器支持ARM平台

这是你可以试用的一些最佳的隐私友好型网络浏览器！

![](/data/attachment/album/202312/06/061704c88t0twgz0fo8o0b.png)

>
> 这是你可以试用的一些最佳的隐私友好型网络浏览器！
>
>
>

对大多数互联网用户来说，网络浏览器应用是他们最常接触的工具。不论其在桌面或移动设备上工作，无论平台如何，总会用到网络浏览器。

通过浏览器，我们可以访问云存储、银行服务、社交媒体、电商平台，以及无数其他服务。

因此，选择一个尊重隐私，并能提供安全网络体验的浏览器对你来说至关重要。

下面我将为你重点展示一些在你选择的任何设备上可以使用的、最佳的注重隐私的浏览器。

### LibreWolf

[LibreWolf](https://librewolf.net/) 是 Firefox 的一个分支版本，它开箱即用地提供了隐私增强功能。

LibreWolf 不只是一个配置稍有不同的 Firefox。它完全清除了所有的遥测、DRM 保护，并在安全方面进行了各种改进。

比如说，每当你关闭浏览器时，它会自动删除浏览和下载历史。此外，你也可以根据 [文档](https://librewolf.net/docs/settings/) 调整这种行为并根据自己的喜好进行自定义。

再者，你还能得到像 DuckDuckGo 和 Qwant 这样的 [隐私友好搜索引擎](https://itsfoss.com/privacy-search-engines/)。同时，uBlock Origin 的扩展功能在该浏览器中默认就开启了。

它不仅能提供私密和安全的体验，LibreWolf 还去掉了一些可能会分散用户注意力的 Firefox 元素，例如一个更清爽的新标签页和 Firefox 同步功能。

亮点：

* 这是专门为了隐私定制的版本
* 可以根据需要调整定制选项
* 默认禁用 Firefox Sync 同步功能
* 仅支持桌面平台（Linux、Windows 和 macOS）

### Brave

[Brave](https://brave.com/en-in/) 是基于 Chromium 的知名版本。它以提供了飞快的网页用户体验而备受赞誉。

Brave 提供了大量以隐私为中心的设置，如：无需创建账户就能安全同步浏览器数据。该浏览器有效地阻止了跟踪器，给你带来了私密网络体验。

你还能获得一些附加功能，如奖励系统（用于选择性广告）和加密钱包。

虽然这个浏览器支持跨平台使用，但对于 Linux 系统，其安装过程与其他式有所不同。你可以参考我们的教程寻找帮助：

>
> **[在 Ubuntu 上安装 Brave 浏览器](https://itsfoss.com/brave-web-browser/)**
>
>
>

亮点：

* 快速的网页浏览体验
* 与 Chrome 相似的用户体验
* 提供安全的浏览器同步选项
* 提供了额外的功能，如加密钱包等
* 支持 Linux、安卓、iOS、Windows 和 macOS

### Firefox

[Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) 是无数隐私爱好者的首选浏览器。

它有很多隐私保护功能，包括有阻止跟踪、设定不同 DNS 的能力。

Firefox 提供了独特的用户体验，整合了 νρη、电子邮件别名、Pocket 等实用功能，以及一个 Firefox 账户可以方便地同步所有你的浏览器数据。

使用 Firefox，你可以自定义用户界面，并通过 JavaScript 文件调整体验。如果你并不打算使用 Firefox，但仍希望提升隐私保护，你可以查看 GitHub 上的 [arkenfox 配置](https://github.com/arkenfox/user.js)。

如果你在 [Firefox 和 Brave](/article-13736-1.html) 之间感到困惑，我们的比较文章可以帮你深入了解、从而做出选择：

>
> **[Brave vs. Firefox：你的私人网络体验的终极浏览器选择](/article-13736-1.html)**
>
>
>

亮点：

* 考虑到可用性而设计出的以隐私为核心的功能
* 整合了 Firefox 同步和 Pocket 功能
* 支持 Linux、Windows、安卓、iOS 和 macOS 等平台

### Tor 浏览器

[Tor 浏览器](https://www.torproject.org/download/) 是注重隐私的用户的最佳选择。

因为它基于 Firefox，所以你基本能获取同样的体验，同时进行了一些改动以更高级别提升安全特性和隐私。

与 LibreWolf 不同的是，Tor 浏览器让你能使用 [Tor 网络](https://itsfoss.com/tor-guide/)，这可能会影响你的网络体验，但对隐私方面的提升很大。你可以通过浏览 [洋葱网站](https://en.wikipedia.org/wiki/List_of_Tor_onion_services) 来保证隐私。

如同 Brave，Tor 浏览器在 Linux 系统上的安装可能有点复杂。如果你是 Linux 用户，你可以参考我们的教程：

>
> **[在 Ubuntu 上安装 Tor 浏览器](https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png)**
>
>
>

亮点：

* 严格的隐私保护，尽管这可能降低可用性
* 连接 Tor 网络
* 支持 Linux、Windows、安卓 和 macOS 等平台

### Mullvad 浏览器

Mullvad 是最好的 [νρη 服务](https://itsfoss.com/best-vpn-linux/) 之一。[Mullvad 浏览器](https://mullvad.net/en/browser) 的开发是与 Tor 项目合作完成的，其特点是专门为使用 νρη 而非 Tor 网络而定制。

你也可以在 Mullvad 浏览器上结合使用其它的 νρη 服务。该浏览器内置了 uBlock Origin 和 NoScript 等扩展，提供他们所追求的私密体验。此外，浏览器并不支持 Firefox 同步。

虽然你不能移除这些扩展，但他们并不推荐你添加更多扩展。

亮点：

* 专为 νρη 使用而定制
* 预先安装了不能被移除的扩展
* 只支持桌面平台（Linux、Windows 和 macOS）

### 总结

随着网络的不断发展且需要处理各种问题，依赖于一个重视隐私的浏览器变得更加方便。

在上述提及的浏览器中，Firefox 和 Brave 是大多数人的首选。但如果你寻求更严格的保护和更多的配置，那么 LibreWolf 应该会符合你的需求。

当然，使用像 Tor 浏览器、LibreWolf 和 Mullvad 这样特别定制的浏览器，你将失去在移动设备上使用它们的灵活性。因此，你可以为你的智能手机选择一个单独的浏览器，或者选择一个支持你所有设备的浏览器。

? 你最喜欢的是哪款注重隐私的网络浏览器呢？请在下方评论让我们知道！如果你对列表中的某些条目有异议，也可以优雅地表达你的看法。

*（题图：MJ/acc47c46-8923-482f-92f6-523516b2f450）*

---

via: <https://itsfoss.com/privacy-web-browsers/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


开源开发者如何致富：搏一搏，单车变摩托

Summary: 有一个热门话题，正在全国范围上火热进行中，那就是开放原子开源大赛。

开源的前提是衣食无忧。。。

大厂变态绩效+996+批量裁员+调库小能手=开源荒漠

这算什么，就问从国产操作系统到闭源的商业软件有哪个尊重过开源的？

像腾讯这种无赖，你看《鬼吹灯》作者天下霸唱连《鬼吹灯》的著作权都没有。

证腾讯把你的开源代码拿去闭源后再反告你泄露公司机密我一点都不奇怪

有一个热门话题，正在全国范围上火热进行中，那就是开放原子开源大赛。

![](/data/attachment/album/202312/06/160007hm1bwd9ub17xy9d7.png)

>
> 有一个热门话题，正在全国范围上火热进行中，那就是开放原子开源大赛。
>
>
>

你是否曾想象过，当你全身心投入到热爱的开源项目中，还能拥有可能赚取高达 80 万、甚至更多的荣誉奖金！现实就在眼前，**开放原子开源大赛**已经强势启动，正等待着你的积极参与。

这场比赛是由**开放原子开源基金会**主导发起，众多政府单位和知名企业也参与其中，充分体现开源共享、共建共治的原则。比赛吸引了各行各业跨界的参赛者，为他们提供 30 多个多元化、实战性十足的赛题，奖池高达 80 万，好像还有可能破纪录突破到 100 万呢！这场比赛可以说是诚意十足，规模硕大，揭示了国家对推动开源事业发展的坚定支持。

![](/data/attachment/album/202312/06/160045rx88yppbtffzf068.jpg)

你不知道这个大赛吗？

那让我为你详细介绍一下这次比赛背后的故事。首先，它由开放原子开源基金会发起，与众多开源组织、企事业单位、高等院校、科研院所、行业组织、投融资机构等联手寻找最新技术的尖兵，以此刺激更多产业链生态上下游的协同发展。承办单位包括开放原子开源基金会、央视网、江苏省工业和信息化厅、无锡市人民政府、江苏软件产业人才发展基金会、苏州工业园区、无锡高新区等。这再一次证明，这次大赛的实力和影响力与众不同。而更加重要的是，这场比赛体现了国家对国内开源实践的大力鼓励和支持。

比赛的赛题十分繁多，可选的面广。预计有 60 个以上的赛题，基本涵盖了国内外所有的主流技术。这使得参赛选手可以根据个人实际兴趣，有针对性地选择竞赛项目，并以此来提升自己的综合实践能力。这不仅能将优秀的开源人才科学、有趣地筛选出来，而且让比赛充满了竞技性和挑战性。

本次大赛分为基础软件赛、工业软件赛、新兴及应用赛和算法赛四大类：

* 基础软件赛：包括能够对硬件进行调度和管理、为应用软件提供运行支撑的系统软件，和支撑软件开发、运行、维护、管理，以及和网络连接或组成相关的支撑软件，例如操作系统、数据库、中间件、编程语言及编译器、办公软件、开发测试工具等。
* 工业软件赛：主要面向在工业领域辅助进行工业设计、生产、通讯、控制的软件或功能模块，例如计算机辅助设计（CAD）、计算机辅助工程/工业仿真（CAE）、计算机辅助制造（CAM）、电子设计自动化（EDA）、工业生产管理系统等。
* 新兴及应用赛：重点关注近年来随着科技不断发展而出现的新兴技术及创新应用，例如人工智能、云计算、区块链、大数据、虚拟现实、RISC-V 等。
* 算法赛：对特定类型的计算问题设定目标，征集高效高质量的算法方案。

参赛选手可以选择最符合兴趣的赛道，参赛项目多样化，自由度极高。下面介绍其中一些你可能感兴趣的赛道：

### openInula 前端框架生态与 AI 创新挑战赛

openInula 是一款用于构建用户界面的 JavaScript 前端框架，作为各类前端应用与上游生态组件的底层基础，支持开发者高效地构建高质量的 Web 应用。

分为两大主题：生态构建与 AI 赋能。参赛者可以利用 openInula 框架的 User API 或内核模块，设计并开发各种生态组件。也可以基于 openInula 框架，利用大语言模型，设计并实现 AI 辅助工具。

* 奖金：￥35万
* 已报名团队数：0

>
> **[点此查看赛题详情](https://competition.atomgit.com/competitionInfo?id=1ab7114195f026b679ab8dde037e25f7)**
>
>
>

### 面向 RISC-V 架构的 AI 开发框架构建与优化大赛

针对 RISC-V 架构的 AI 开发框架尚处于起步阶段，尚未涌现出一个经过专门构建和优化的 AI 开发框架，能够充分发挥 RISC-V 的独特优势。本赛题要求开发者能够基于 openKylin 开源操作系统和 RISC-V 硬件平台。参赛者需要适配运行一款以上主流 AI 框架，并基于此框架运行有代表性的 AI 模型，或者开发 AI 应用软件。如果能够针对 RISC-V 对框架进行优化，则属于加分项。

* 奖金：￥50万
* 已报名团队数：5

>
> **[点此查看赛题详情](https://competition.atomgit.com/competitionInfo?id=4a4c42151e522fcedd60be88cd0d2aec)**
>
>
>

### 基于 Pika 的 Serverless KV DB

为了达成 Serverless 的能力，Pika 社区需要做一系列的开发工作，技术挑战赛题目参考方向如下：参赛者可以从分布式、云原生、Pika 核心功能、生态工具、质量工程等方面挑选一个或多个题目进行参赛。

* 奖金：￥50万
* 已报名团队数：90

>
> **[点此查看赛题详情](https://competition.atomgit.com/competitionInfo?id=8954fc80481711eeb9c0eb26c552c0c4)**
>
>
>

### OpenAnolis 孵化机密计算和机密容器的创新项目

赛题要求参与者能够理解当前机密计算技术，并结合当前机密计算领域最新的前沿技术 Device TEE，基于 SPDM 规范定义的消息协议实现 CPU TEE 绑定协议和代码，编写 SPDM for CPU TEE 的绑定协议规范草案，未来提交到开源社区和标准组织，最终进行产品落地。

* 奖金：￥15万
* 已报名团队数：23

>
> **[点此查看赛题详情](https://competition.atomgit.com/competitionInfo?id=8aff7160f0a511ed99d49fc42bfa011c)**
>
>
>

### CAE 开源工业软件评注创新赛

本题目提供 7 个 CAE 软件，请任选 1 个参与比赛。初赛任务包括：

1. 开源代码评注：在公开技术论坛、公众号等渠道发布所选开源项目的技术博客，可以围绕项目代码各个方面持续发布多篇技术博客，内容要求为原创。
2. 项目创新应用研究：在 AtomGit 上传基于所选开源项目的创新研究成果，体现所选开源 CAE 软件的创新应用潜力，展示本项目与实际行业需求相关的价值能力等。

* 奖金：￥15万
* 已报名团队数：25

>
> **[点此查看赛题详情](https://competition.atomgit.com/competitionInfo?id=53a9da50480911eeb9c0eb26c552c0c4)**
>
>
>

### 基于 OpenHarmony 的国产 DDC 低代码开发平台

本赛题旨在推动 Node-RED 低代码开发工具在国产 DDC 设备上的集成，实现国内基于 OpenHarmony 系统的工业领域应用生态快速发展。本赛题要求参赛者基于 OpenHarmony 操作系统移植 Node-RED 低代码开发平台。

* 奖金：￥30万
* 已报名团队数：0

>
> **[点此查看赛题详情](https://competition.atomgit.com/competitionInfo?id=33279de7d91c5ed7fcec024f010f953f)**
>
>
>

![](/data/attachment/album/202312/06/161143zchxuhwqqhaethiq.png)

除此之外，还有很多赛道尚未结束报名，大家可以看看有没有适合你的赛道：

>
> **[点此查看所有赛题](https://competition.atomgit.com/competition)**
>
>
>

那些愿意接受挑战的读者们，你们现在就有机会报名参赛。所有参赛者均无门槛，无费用，无限制，无论你在何处，全球任何组织或者个人都能报名。

赛题是由各大厂商提供的，他们极其青睐能解决这些问题的你们。参与比赛不仅是一次技术提升的过程，更是一次远程的技术面试，为你们直接开启头部企业的实习、就业终面机会，这是你们展示才华，收获就业机会的舞台。

除此之外，比赛还提供了多种奖励和福利，赛道多样，奖金丰厚，最高可获得80万的奖金。

比赛过程中，你将有机会获得开源社区导师的指导，提升技能，并获取开源项目全方位的技术支持和共享。如果你的项目表现优秀，你甚至还有可能获得项目投融资支持、地方政府项目落地扶持，以及商业化的支持。

因此，如果你对自己的技术有信心，真的应该参加这次大赛，或许是这样一种机会，能让你将自己的技术转化为实践，同时也能积极影响到国家的发展。你可能会成为那个深藏不露的技术高手，利用这次机会摆脱打工人的命运，改变自己的生活，冲击更高的技术领域。你也有可能是一位新手，但这次大赛将会是你获取最新行业发展动态、提升技能、提高职业发展的极好机会。所以，无论你现在处于哪个阶段，都不要犹豫，现在就参与这次大赛，享受这次难得的机会，也许这正是你一直在寻找的机会。

*（题图：MJ/010c5eac-745c-4abb-955d-d293aa5f4529，尾图：MJ/f1033fc0-997a-4a61-b389-1555b2ed5892）*


Godot 4.2 发布：让开源游戏引擎更上一层楼

Oh yeah ~

![](/data/attachment/album/202312/06/162357bjz99b66jpnbqy6p.jpg)

>
> Godot 的又一次更新，其中包含了一些有用的更改，以更接近 Unreal、Unity 等专有引擎。
>
>
>

[Godot](https://godotengine.org/)，社区最喜欢的 Unreal 和 Unity 等专有游戏引擎的替代品，有一个新的重大更新！

**Godot 4.2** “闪亮登场”，全面更新大量内容。它继续沿着 [Godot 4.0 版本](https://news.itsfoss.com/godot-4-0-release/) 铺平的道路，并在此基础上进行构建。

拿上你的饮料，让我来重点介绍一下这次发布的优点。☕

### Godot 4.2：有什么新内容？

Godot 4.2 版本有很多新东西。但是，我们将关注**关键亮点**：

* Linux 上的官方 ARM 支持
* 编辑器改进
* 更多版本控制友好
* 增强的图块地图
* 多人游戏/网络的改进
* 更好的导航系统

#### Linux 上的官方 ARM 支持

尽管可以在 Linux 上为基于 ARM 的设备手动构建 Godot，但**从来没有针对 Linux 的官方 ARM 构建**。

然而，随着 Godot 4.2 的发布，这种情况发生了变化。他们在下载页面上提供了 **32 位和 64 位版本的 Godot for ARM**。

请记住，这是**一项实验性工作**，因此可能会出现错误和问题。

#### 编辑器改进

![](/data/attachment/album/202312/06/162439nzccc33v9le2jvxe.jpg)

Godot 的编辑器方面有很多改进。

如上面的截图所示，第一个是代码编辑器中的新添加项，名为“<ruby> 创建代码区域 <rt>  Create Code Region </rt></ruby>”。它允许你**将脚本分解为命名块**，然后可以将其最小化以减少混乱。

![](/data/attachment/album/202312/06/162440int6f9iyow79i86f.jpg)

Godot 的另一个新功能是**能够在编辑器视口中单独扩展方框图形的每一侧**。以前，这仅限于中心点和对称范围。

![](/data/attachment/album/202312/06/162440lc7h56njk2i5a52i.jpg)

**项目管理器也进行了更新**，改进了一般项目导入工作流程，并重新排列了按钮。

#### 更多版本控制友好

Godot 4.2 修复了在“就绪”期间更改场景或重命名节点会导致崩溃的问题，还修复了与重命名/移动文件相关的各种问题。

开发人员还补充道：

>
> 此外，场景中资源 ID 偶尔更改的一些情况已得到解决（[GH-65011](https://github.com/godotengine/godot/pull/65011)）。仍有改进的空间，但这已经使 4.2 的版本控制更加友好。
>
>
>

#### 增强的图块地图

![](/data/attachment/album/202312/06/162440au88ikccvg8dv2fc.jpg)

除了 Godot 的**图块/图块地图系统**的主要性能优化之外，还有一项新功能允许你在将图块/图块图案放置在任何地方时**旋转或翻转它们**。

#### 多人游戏/网络的改进

此版本还具有**高级多人游戏系统的改进**。“MultiplayerSynchronizer” 节点现在支持同步变换组件、子资源属性和其他类型的索引数据。

还有**针对拒绝服务漏洞的安全修复**，该漏洞之前在 Godot 4.0.4 RC1 版本中已披露。

>
> ? 开发人员建议用户升级到 Godot 4.0.4、4.1.2 或 4.2 以避免出现问题。
>
>
>

#### 更好的导航系统

![](/data/attachment/album/202312/06/162441qvxaziupia9dvjf3.jpg)

Godot 4.2 带来了 **2D 导航网格烘焙**，它可以处理物理体、网格实例、普通多边形等。

此外，**添加了对 2D 和 3D 导航网格烘焙的多线程支持**，以提高性能并减少卡顿。

#### ? 其他更改和改进

还有许多其他值得注意的变化：

* 改进了 [GDExtension](https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/what_is_gdextension.html) 系统。
* 支持 AMD 的 [FSR 2.2](https://community.amd.com/t5/gaming/amd-fidelityfx-super-resolution-2-2-racing-into-more-games-and/ba-p/563910) 技术。
* 图形构建节点的**重大修改**。
* **适用于 Linux、Windows 和 macOS 的原生文件选择**对话框。
* 现在可以为附加组件和资产**指定不同的安装文件夹**。
* **修复了 Steam 输入问题**，该问题导致某些游戏手柄事件被处理两次。

有关此版本的更多详细信息，你可以通过 [官方发行说明](https://godotengine.org/article/godot-4-2-arrives-in-style/) 了解。

### ? 下载Godot 4.2

前往 [官方网站](https://godotengine.org/download/linux/) 获取 Linux 版 Godot 的最新版本。对于其他软件包，你还可以参考其 [GitHub 仓库](https://github.com/godotengine/godot/releases/tag/4.2-stable)。

>
> [Godot 4.2（GitHub）](https://github.com/godotengine/godot/releases/tag/4.2-stable)
>
>
>

? 你对此版本有何看法？ 已经试过这个精彩的开源游戏引擎了吗？ 在评论中告诉我们！

---

via: <https://news.itsfoss.com/godot-4-2/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1207 Firefox 面临被踢出兼容性要求名单

Summary:
? Firefox 面临被踢出兼容性要求名单
? Facebook 停止发送 PGP 加密邮件
? 中国成为世界上第一个在水下部署商业数据中心的国家
»
»

由于大多数人安全意识不高，如果要推广加密邮件，最好是默认启用，并且无需用户额外操作。好像ProtonMail和其他几个流行的加密邮箱都是这样做的。

![](/data/attachment/album/202312/06/194501bc8xtsc3u1ussmb3.jpg)

![](/data/attachment/album/202312/06/194508zwddydwfk34w6q3d.png)

### #1 Firefox 面临被踢出兼容性要求名单

美国网页设计系统（USWDS）提供了一套全面的标准，为美国政府的众多网站建设者提供指导。它为开发人员提供的文档借鉴了英国同行的 “2% 规则”： “根据 [analytics.usa.gov](http://analytics.usa.gov/) 的观察，我们正式支持任何使用率超过 2% 的浏览器。”而根据该网站前九十天的流量，Firefox 浏览器的市场份额仅为 2.2%。如果低于 2% 的阈值，那么 USWDS 可以不再要求政府网站的开发者继续兼容 Firefox。这将有可能进而影响到企业，越来越多的网站将不再兼容 Firefox。

>
> **[消息来源：Slashdot](https://news.slashdot.org/story/23/12/05/0745251/firefox-on-the-brink)**
>
>
>

>
> 老王点评：除了让 Firefox 用户去访问一下这个观察网站，我们还能做什么？
>
>
>

![](/data/attachment/album/202312/06/194522ilat6naaat9z99n4.png)

### #2 Facebook 停止发送 PGP 加密邮件

2015 年，在斯诺登事件后，Facebook 宣布将允许用户以加密方式接收该公司的邮件。开启该功能后，Facebook 发送给用户的所有电子邮件（主要是点赞通知和私人信息）都将使用已有几十年历史的 PGP 技术进行加密。据 Facebook 称，八年后的今天，由于使用率较低，Facebook 将取消这项功能。该功能已于周二废弃。Facebook 拒绝说明究竟有多少用户仍在使用加密电子邮件功能。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/12/05/used-by-only-a-few-nerds-facebook-kills-pgp-encrypted-emails/)**
>
>
>

>
> 老王点评：作为在国内早期推广过 PGP/GPG 加密邮件的人，我只能说，绝大部分人都觉得邮件的加密和签名是无谓的麻烦，叹息。
>
>
>

![](/data/attachment/album/202312/06/194541fu3n8kwyqnqkngkq.png)

### #3 中国成为世界上第一个在水下部署商业数据中心的国家

据《中国日报》报道，我国开始在三亚市沿海的水下组装部署商业数据中心。第一个模块已经下水安装，按照计划，他们将在约 35 米深的水下基地安装 100 个水密存储模块，每个模块重达 1,300 吨，这将建立一个可同时运行近 600 万台计算机的数据中心。这些模块将产生大量热量，而这些热量会被周围的海水自然冷却。预计仅此一项就可节省 1.22 亿千瓦时的电力。该水下数据中心计划将于 2025 年投入使用，这些模块的使用寿命长达 25 年。

>
> **[消息来源：Interesting Engineering](https://interestingengineering.com/innovation/worlds-first-underwater-data-center-china)**
>
>
>

>
> 老王点评：微软也做过类似尝试，但没有进一步发展，希望我们的尝试能成功。
>
>
>


一款外观时尚的用于管理个人财务的 Linux 应用

Summary: Linux桌面的完美应用，用于轻松管理财务！

看起来挺不错，基于gtk4与gnome适配良好

Linux桌面的完美应用，用于轻松管理财务！

![](/data/attachment/album/202312/07/103124xo86aq504q6mkokg.jpg)

>
> Linux桌面的完美应用，用于轻松管理财务！
>
>
>

个人财务如果管理得当，对于财务状况大有裨益。许多人意识到这一点后，开始采取积极措施来保持财务状况良好。

由于这一点，**我们最近看到了个人财务管理应用的崛起**，这些应用凭借提供的功能已经引起了广泛关注。

但是，**许多现有的应用都是专有的**，这导致人们对于他们的财务数据可能如何处理产生了不确定性，尤其是如果它们同步到云中。

幸运的是，**我们有一些出色的开源选择**。通过这次初步了解，我们将看到其中一款，“**Denaro**”，**一款适用于Linux的个人财务管理应用**。

### Denaro：概览 ⭐

![](/data/attachment/album/202312/07/103158y0z08rdl7rks2k8r.png)

用 C# 编写的 Denaro 是**一款整洁的小应用，可轻松管理你的财务**。它是**完全开源**的，依赖社区的贡献来推动其发展。

其中一些**关键功能**包括：

* 轻松筛选交易
* 导入/导出功能
* 多账户支持

#### 初次印象 ??

我使用 Flathub 商店提供的可用包安装了 Denaro ，它**与我搭载 GNOME 42 的系统集成良好**。

**该应用程序是以 GNOME 为基础设计的**，并针对默认的 Adwaita 主题进行了优化。

第一次启动时，我被问候了“下午好！”并提供了创建新账户或打开现有账户的选项。

>
> ? 请注意，账户是存储在本地的，而不是在任何云服务上。
>
>
>

![](/data/attachment/album/202312/07/103158vqglgcbdadbcdzc9.png)

我选择创建一个新账户，然后我看到了**快速设置向导**。

![](/data/attachment/album/202312/07/103159kw77u5pqwrwuaun8.png)

我输入了账户名称，并将位置设置为“<ruby> 文档 <rt>  Documents </rt></ruby>”，我没有添加密码，但如果你想更好地保护信息，密码也是可选用的。 ?

![](/data/attachment/album/202312/07/103159y7nyf4077meie2em.png)

设置完所有这些后，我可以**选择账户类型**，我可以选择 <ruby> 支票 <rt>  Checking </rt></ruby>、<ruby> 储蓄 <rt>  Savings </rt></ruby> 和 <ruby> 商业 <rt>  Business </rt></ruby>，我选择了储蓄。

我还可以**设置默认交易类型**，并**设置交易提醒阈值**。

![](/data/attachment/album/202312/07/103200ew5hwa5pwgbbwhdd.png)

Denaro 很好地读取了我系统的信息，**自动将货币设置为印度卢比（INR）的 ₹**。

![](/data/attachment/album/202312/07/103203c3f3yf370sdff8h7.png)

然后，我继续填充 Denaro 的一些重要交易，并通过**创建新组**将它们分组，如下所示。

你可以通过单击侧栏中“<ruby> + 新建 <rt>  + New </rt></ruby>”按钮旁边的“<ruby> 分组 <rt>  Groups </rt></ruby>”标题来访问它。你还可以为其**提供描述**和**标记颜色**！

![](/data/attachment/album/202312/07/103203u3bkhvnciul03060.png)

完成分组后，我开始**在 Denaro 中输入一些重要的交易**。

我设置了 <ruby> 金额 <rt>  Amount </rt></ruby>，选择了交易类型（<ruby> 收入 <rt>  Income </rt></ruby>/<ruby> 支出 <rt>  Expense </rt></ruby>），设置了 <ruby> 日期 <rt>  Date </rt></ruby> 和 <ruby> 重复间隔 <rt>  Repeat Interval </rt></ruby>，以便它自动记账，因为那是固定费用。

接下来，我将其添加到一个组中，如下所示。燃油费用进入了“旅行”组。

![](/data/attachment/album/202312/07/103204cmpilmgrah7wtyrf.png)

该应用还为你提供了**向交易添加注释并上传收据的选项**。如果你问我，这是一个不错的功能。

![](/data/attachment/album/202312/07/103205o8qaplz1nvj0p8v1.png)

在完成数据输入后，我看到了**一个主屏幕**，其中充满了我输入的所有交易，中间有**有用的可视化图表**（下文更多介绍）。

我可以通过取消选中特定的类别和组来排序信息，甚至可以使用**提供的搜索栏**搜索特定的交易。

如果你想知道；**如何添加新交易？**

你看到下面那个大大的蓝色按钮，上面写着“<ruby> + 新建 <rt>  + New </rt></ruby>”，你可以使用它来创建新交易。

![猫税/分期付款是我从不轻视的费用。 ?](/data/attachment/album/202312/07/103206xdfsk22eae6a7722.png)

至于**数据如何可视化**，Denaro 展示了**四种不同的可视化视图**，包括一个图表、一个图形和两个饼图。

![](/data/attachment/album/202312/07/103206nxgqqf510bwf2f5q.png)

Denaro 还具有**多账户功能**，你可以创建多个账户，甚至可以使用“<ruby> 转账 <rt>  Transfer </rt></ruby>”功能**在它们之间转移资金**。

通过单击“<ruby> 操作 <rt>  Actions </rt></ruby>”按钮并单击“<ruby> 转账 <rt>  Transfer Money </rt></ruby>”来访问它。

![](/data/attachment/album/202312/07/103207lnp0zrnrb00t3lzj.png)

引起我的另一个注意的是**Denaro 上的货币换算器**。它**列出了所有主要货币**，并有一个便捷的“切换”按钮来更改换算的目标。

![](/data/attachment/album/202312/07/103207gj9qfbxfm9qmjc9r.png)

**总的来说，这是一个令人印象深刻的个人财务管理应用程序**。

从我的体验来看，**用户体验非常直观**，大多数用户应该能够轻松使用它。

### ? 下载 Denaro

你可以从 [Flathub 商店](https://flathub.org/apps/org.nickvision.money)、[Snap Store](https://snapcraft.io/denaro) 和 [AUR](https://aur.archlinux.org/packages/denaro) 获取 Denaro 的最新版本。

>
> **[Denaro（Flathub）](https://flathub.org/apps/org.nickvision.money)**
>
>
>

关于源代码，你可以访问其 [GitHub 仓库](https://github.com/nickvisionapps/denaro)。

? 你是如何管理个人财务的？你喜欢使用像 Denaro 这样的应用程序吗？请在下方评论中告诉我。

---

via: <https://news.itsfoss.com/denaro/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[GlassFoxowo-Dev](https://github.com/GlassFoxowo-Dev) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1208 LVFS 已为 Linux 用户提供超过 1 亿次固件更新

Summary:
? LVFS 已为 Linux 用户提供超过 1 亿次固件更新
? openSUSE 新徽标投票还剩一周时间
? “逻辑量子比特”数量突破记录
»
»

操，windows时代被蓝屏支配的恐惧要来到linux了么

Linux不是绝不死机。

普通用户不会查log的，一个直观的错误界面能省很多事。

不是死机，是内核崩溃（Kernel Panic）<br />
在Windows是蓝屏，在macOS是五国，在Linux/BSD是直接打印详细信息。（GUI桌面下可能会有所不同，但我没遇到在桌面环境崩溃的情况）

对于普通用户而言，内核崩溃与桌面崩溃是一样的。。。

![](/data/attachment/album/202312/07/181458fg0xu1r2vixpp1rv.jpg)

![](/data/attachment/album/202312/07/181509xaf3tec4tw3hewp8.png)

### #1 LVFS 已为 Linux 用户提供超过 1 亿次固件更新

Linux 厂商固件服务（LVFS）是与 Linux 固件更新工具 fwupd 搭配使用的服务，目前该服务已提供了超过 1 亿次固件更新！而大约一年半前，LVFS 的下载次数为 5200 万次。fwupd/LVFS 使得在 Linux 下更新大量系统固件和设备/外设固件变得异常简单。在广泛支持 LVFS 之前，Linux 用户更新设备固件往往是一件令人望而生畏的苦差事，他们经常需要启动到 Windows 或借助 FreeDOS 进行系统 BIOS 更新，或者干脆不更新固件。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/LVFS-100-Million-Firmware)**
>
>
>

>
> 老王点评：很棒的工作！
>
>
>

![](/data/attachment/album/202312/07/181546tfiwxuzifzjuhg10.png)

### #2 openSUSE 新徽标投票还剩一周时间

openSUSE 项目一直在进行品牌重塑，以更好地区分该社区开源项目和 SUSE 本身。目前，openSUSE 项目正在进行徽标设计大赛，调查投票只剩下不到一周的时间。新徽标将在公布后的过渡期内与现有的 Geeko 徽标一起使用。

>
> **[投票地址](https://survey.opensuse.org/)**
>
>
>

![](/data/attachment/album/202312/07/183432nexqjl5bc2zcv525.jpg)

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/openSUSE-New-Logo-Survey)**
>
>
>

>
> 老王点评：openSUSE 的粉丝们，你投票了吗？
>
>
>

![](/data/attachment/album/202312/07/181624zaalaapqao50ah0u.png)

### #3 “逻辑量子比特”数量突破记录

量子计算机能完成多复杂的计算取决于它所包含的量子比特的数量。最近，IBM 和 Atom Computing 公司推出了拥有 1000 多个量子比特的设备，几乎是以前最大量子计算机的三倍，但这并没有立即带来计算能力的大幅提升，因为更大的量子计算机往往也会出现更多错误。逻辑量子比特是通过量子纠缠相互连接的量子比特组，与标准量子比特不同，逻辑量子比特能够更好地进行计算而不受错误的影响。波士顿的量子计算初创公司 QuEra 专注于增加逻辑量子比特的数量，研究人员现在能够一次制作多达 48 个逻辑量子比特，这比之前创造的逻辑量子比特数量多出 10 倍以上。

>
> **[消息来源：New Scientist](https://www.newscientist.com/article/2407145-quantum-computer-sets-record-on-path-towards-error-free-calculations/)**
>
>
>

>
> 老王点评：虽然现在 AI 很火，但是要是一旦量子计算突破，那带来的颠覆性更大。
>
>
>

### 回音

* systemd 255 发布了稳定版，并附带了 systemd-bsod 作为 “[蓝屏死机](/article-16358-1.html)” 服务，能够在 Linux 上全屏显示错误信息。