2021年6月

使用 AI 给游戏配音,引来配音演员强烈不满

《巫师 3:狂猎》MOD 的开发者用 CyberVoice 软件对《巫师 3》主角的配音演员的声音进行训练,然后生成了几乎以假乱真的新台词语音。部分配音演员对这一结果表达了强烈不满。

AI 终究会取代大部分工作,即便是一些需要专业技能的工作。

微软承认曾向包含恶意驱动程序提供签名

自 Windows Vista 以来,任何在内核模式下运行的代码都需要在公开发布前进行测试和签名,没有微软证书的驱动程序默认不能安装。这个名为“Netfilter”的驱动程序实际上是一个 rootkit,它被观察到与一个位于中国的命令与控制 IP 进行通信,该威胁行为者主要针对中国的游戏行业。

这家开发包含恶意行为的软件公司像任何正常公司一样,仅仅通过遵循正常程序提交了驱动程序进行认证,就击穿了微软的安全防线。到目前为止,还没有证据表明使用了被盗的代码签名证书。

这一特殊事件暴露了合法代码签名过程中的弱点,威胁者利用这些弱点获得了微软的签名代码,而没有破坏任何证书。

Linux Kernel 5.13 发布

Linus Torvalds 今天发布了 Linux Kernel 5.13。新版内核添加了对 M1 芯片的初步支持,不过目前还没有加速图形支持。其主要变化可以参见我们昨天的介绍。Torvalds 说,“5.13 的总体规模实际上是相当大的。事实上,它是较大的 5.x 版本之一,有来自 2000 多名开发者的超过 16000 个提交(如果算上合并,则超过 17000个)。”

我更期待的是下一个版本,慢慢已经习惯了 Linux 内核不断的滚动新版本。

Linux 中有各种各样的 BitTorrent 应用。但是,找到一个好的、提供许多功能的应用将可以为你节省一些时间。

KDE 的 KTorrent 就是这样一个为 Linux 打造的 BitTorrent 应用。

虽然 Linux 有好几个 torrent 客户端,但我最近发现 KTorrent 对我而言很合适。

KTorrent: 适用于 Linux 的开源 BitTorrent 客户端

KTorrent 是一个成熟的 torrent 客户端,主要为 KDE 桌面定制。无论你使用什么桌面环境,它都能很好地工作。

当然,使用 KDE 桌面,你可以得到一个无缝的用户体验。

让我们来看看它的所有功能。

KTorrent 的功能

对于普通的 torrent 用户来说,拥有一套全面的功能使事情变得简单。而 KTorrent 也不例外。在这里,我将列出 KTorrent 的主要亮点:

  • 在一个队列中添加 torrent 下载
  • 能够控制每次下载(或整体)的速度限制
  • 视频和音频文件预览选项
  • 支持导入下载的文件(部分/全部)
  • 在下载多个文件时,能够对 torrent 下载进行优先排序
  • 为多文件 torrent 选择要下载的特定文件
  • IP 过滤器,可选择踢走/禁止对端。
  • 支持 UDP 跟踪器
  • 支持 µTorrent 对端
  • 支持协议加密
  • 能够创建无跟踪器的 torrent
  • 脚本支持
  • 系统托盘集成
  • 通过代理连接
  • 增加了插件支持
  • 支持 IPv6

KTorrent 看起来可以作为一个日常使用的 torrent 客户端,在一个地方管理所有的 torrent 下载。

除了上面提到的功能外,它还对客户端的行为提供了很大的控制。例如,调整下载/暂停/跟踪器的指示颜色。

如果你想禁用完成 torrent 下载时的声音或得到活动通知,你还可以设置通知。

虽然像协议加密支持这样的功能可能无法取代一些 最好的私有专用网络 服务,但它对桌面客户端来说是一个重要的补充。

在 Linux 中安装 KTorrent

KTorrent 应该可以通过包管理器(如 Synaptic)或默认的仓库获得。你也可以在你的软件中心找到它并轻松安装。

除此之外,它还在 Flathub 上提供了一个适用于任何 Linux 发行版的 Flatpak 官方包。如果你需要帮助,我们有一个 Flatpak 指南 供参考。

如果你喜欢的话,你也可以尝试可用的 snap包。

要探索更多关于它和源码的信息,请前往它的 官方 KDE 应用页面。

结束语

KTorrent 是 Linux 中一个出色的 torrent 客户端。我在我的 Linux Mint 系统的 Cinnamon 桌面上试用了它,它运行得很好。

我喜欢它的简单和可配置性。尽管我不是每天都在使用 torrent 客户端,但在我短暂的测试中,我没有发现 KTorrent 有什么奇怪的地方。

你认为 KTorrent 作为 Linux 的 torrent 客户端怎么样?你喜欢用什么呢?


via: https://itsfoss.com/ktorrent/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这些有用的小技巧将改变你在当前最流行的版本控制系统下的工作方式。

 title=

Git 是当前最流行最普遍的版本控制系统之一,它被应用于私有系统和公开网站上各种各样的开发工作。不论我变得对 Git 有多熟悉,似乎总有些功能等待着被发掘。下面分享下和 Git 相关的改变我工作方式的一些小技巧。

1、Git 中的自动纠错

我们每个人都不时在输入时犯拼写错误,但是如果你使能了 Git 的自动纠错功能,你就能让 Git 自动纠正一些输入错误的子命令。

假如你想用命令 git status 来检查状态,但是你恰巧错误地输入了 git stats。通常情况下,Git 会告诉你 ‘stats’ 不是个有效的命令:

$ git stats
git: ‘stats’ is not a git command. See ‘git --help’.

The most similar command is
status

为了避免类似情形,只需要在你的 Git 配置中使能自动纠错功能。

$ git config --global help.autocorrect 1

如果你只想对当前的仓库生效,就省略掉选项 --global。

这个命令会使能自动纠错功能。在相应的 Git 官方文档 中可以看到这个命令的详细说明,但是试着敲一下上面的错误命令会使你对这个设置干了什么有个直观的了解:

$ git stats
git: ‘stats’ is not a git command. See ‘git --help’.
On branch master
Your branch is up to date with ‘origin/master’.

nothing to commit, working tree clean

在上面的例子中,Git 直接运行了它建议命令的第一个,也就是 git status,而不是给你展示它所建议的子命令。

2、对提交进行计数

需要对提交进行计数的原因有很多。例如,一些开发人员利用提交计数来判断什么时候递增工程构建序号,也有一些开发人员用提交计数来对项目进展取得一个整体上的感观。

对提交进行计数相当简单而且直接,下面就是相应的 Git 命令:

$ git rev-list --count branch-name

在上述命令中,参数 branch-name 必须是一个你当前仓库里的有效分支名。

$ git rev-list –count master
32
$ git rev-list –count dev
34

3、仓库优化

你的代码仓库不仅对你来说很宝贵,对你所在的组织也一样。通过少数几个惯例你就能使自己的仓库整洁并且保持最新。使用 .gitignore 文件 就是这些最好的惯例之一。通过使用这个文件你可以告诉 Git 不要保存一些不需要记录的文件,如二进制文件、临时文件等等。

当然,你还可以使用 Git 的垃圾回收来进一步优化你的仓库。

$ git gc --prune=now --aggressive

这个命令在你和你的团队经常使用 pull 或者 push 操作的时候很有帮助。

它是一个内部工具,能清理掉你的仓库里没法访问或者说“空悬”的 Git 对象。

4、给未追踪的文件来个备份

大多数时候,删除所有未追踪的文件是安全的。但很多时候也有这么一种场景,你想删掉这些未追踪的文件同时也想做个备份防止以后需要用到。

Git 组合一些 Bash 命令和管道操作,可以让你可以很容易地给那些未追踪的文件创建 zip 压缩包。

$ git ls-files --others --exclude-standard -z |\
  xargs -0 tar rvf ~/backup-untracked.zip

上面的命令就生成了一个名字为 backup-untracked.zip 的压缩包文件(当然,在 .gitignore 里面忽略了的文件不会包含在内)。

5、了解你的 .git 文件夹

每个仓库都有一个 .git 文件夹,它是一个特殊的隐藏文件夹。

$ ls -a
. … .git

Git 主要通过两个东西来工作:

  1. 当前工作树(你当前检出的文件状态)
  2. 你的 Git 仓库的文件夹(准确地说,包含版本信息的 .git 文件夹的位置)

这个文件夹存储了所有参考信息和一些其他的如配置、仓库数据、HEAD 状态、日志等更多诸如此类的重要细节。

一旦你删除了这个文件夹,尽管你的源码没被删,但是类似你的工程历史记录等远程信息就没有了。删除这个文件夹意味着你的工程(至少本地的复制)不再在版本控制的范畴之内了。这也就意味着你没法追踪你的修改;你没法从远程仓拉取或推送到远程仓了。

通常而言,你需要或者应当对你的 .git 文件夹的操作并不多。它是被 Git 管理的,而且大多数时候是一个禁区。然而,在这个文件夹内还是有一些有趣的工件,比如说当前的 HEAD 状态在内的就在其中。

$ cat .git/HEAD
ref: refs/heads/master

它也隐含着对你仓库地描述:

$ cat .git/description

这是一个未命名的仓库;通过编辑文件 ‘description’ 可以给这个仓库命名。

Git 钩子文件夹连同一些钩子文件例子也在这里。参考这些例子你就能知道 Git 钩子能干什么了。当然,你也可以 参考这个 Seth Kenlon 写的 Git 钩子介绍。

6、浏览另一个分支的文件

有时,你会想要浏览另一个分支下某个文件的内容。这其实用一个简单的 Git 命令就可以实现,甚至都不用切换分支。

设想你有一个命名为 README.md 的文件,并且它在 main 分支上。当前你正工作在一个名为 dev 的分支。

用下面的 Git 命令,在终端上就行。

$ git show main:README.md

一旦你执行这个命令,你就能在你的终端上看到 main 分支上该文件的内容。

7、Git 中的搜索

用一个简单的命令你就能在 Git 中像专业人士一样搜索了。更有甚者,尽管你不确定你的修改在哪次提交或者哪个分支上,你依然能搜索。

$ git rev-list --all | xargs git grep -F ''

例如,假设你想在你的仓库中搜索字符串 “font-size: 52 px;" :

$ git rev-list –all | xargs git grep -F ‘font-size: 52 px;’
F3022…9e12:HtmlTemplate/style.css: font-size: 52 px;
E9211…8244:RR.Web/Content/style/style.css: font-size: 52 px;

试试这些小技巧

我希望这些小技巧对你是有用的,或者增加你的生产力或者节省你的大量时间。

你也有一些喜欢的 Git 技巧 吗?在评论区分享吧。


via: https://opensource.com/article/20/10/advanced-git-tips

作者:Rajeev Bera 选题:lujun9972 译者:BoosterY 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

华为工程师向 Linux 内核提出一项“华为摘要列表”功能建议

该功能作为核内数据库来存储文件和元数据摘要。预期用于完整性测量(IMA)和通过 SecurityFS 将数据库暴露给用户空间。其数据可能包括 RPM 头文件和 Debian 存储库元数据信息。华为将其设计为核内数据库以便其驻留在内核内存中,不容易受到用户空间的攻击。目前该功能已经在 openEuler Linux 发行版中使用。当前的实现只有不到四千行的代码。

不管该功能是否能被内核接纳,但这种上游优先的做法是值得赞赏的。

Rocky Linux 8.4 正式发布

Rocky 企业软件基金会宣布了 Rocky Linux 8.4 的第一个通用版本。很多大公司都依赖于 CentOS,这包括迪斯尼、GoDaddy、Rackspace、丰田和 Verizon 等,据说他们对 RedHat 结束 CentOS Linux 的决定不满意。事实证明,Rocky Linux 很受欢迎。除了迅速为该项目建立起数百名贡献者的大军外,Rocky Linux 8.4 在发布后的半天内被下载了至少 1 万次,这还不算镜像下载量,可能至少是这个数字的 3-4 倍。Rocky Linux 项目的创始人表示,“Rocky Linux 可能很快就会成为企业和云计算中使用最多的 Linux 操作系统!”

一个纯正的 CentOS 替代品接过了 CentOS Linux 退出后留下的市场,不知道这是不是红帽所希望的呢?

Fedora 35 将自动启用最佳加密扇区大小

在今年秋天发布的 Fedora 35 中,对于那些采用 LUKS/dm-crypt 加密并使用基于 4K 扇区大小的存储的用户来说可以带来更好的性能。目前,当在磁盘上安装 Fedora Linux 并使用 LUKS 加密时,无论基础磁盘的物理扇区大小如何,都会使用 512 字节的扇区大小。但现在最新的 cryptsetup 版本提供了一个选项,能够自动确定最佳扇区大小,Fedora 35 正计划跟随启用这个选项。

Fedora 在实验新特性方面总是比较及时,所以我不明白的是,为什么还要有 CentOS Stream。

如果一切顺利的话,周日 Linus Torvalds 将会发布 Linux 5.13 稳定版,而不是发布 5.13-rc8 测试版并把最终版本再推后一个版本。不管是哪种情况,Linux 5.13 很快就会发布,而且会有很多新功能。

在合并窗口结束后,我们照例发布了 Linux 5.13 的功能概述。但是,对于那些不记得在 4 月底到 5 月初的合并窗口期间所有这些变化的人来说,这里回顾了这个下一个内核版本中最突出的变化:


via: https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.13-Features

作者:Michael Larabel 选题:wxy 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一窥开源 Python 项目保持平稳运行的社区幕后。

 title=

Jannis Leidel 是 Jazzband 社区的一部分。Jazzband 是一个协作社区,共同承担维护基于 Python 的项目。

Jazzband 的诞生源于长期独自维护一个开源项目的压力。Jannis 是“roadie”,这意味着他负责管理任务并确保团队中的人可以在他们想要的时候参与。

Jazzband 并不是他的第一个开源志愿者工作——他是前 Django 核心开发人员,Django 软件基金会 董事会成员,编写了许多 Django 应用程序和 Python 项目,曾是 pip 和 virtualenv 核心开发人员和发布经理,共同创立了 Python 打包机构 Python Packaging Authority ,还担任过 PyPI 管理员。在社区方面,他共同创立了德国 Django 协会,担任 DjangoCon Europe 2010 联合主席,在多个会议上发言,并在去年担任了 Python 软件基金会 董事和联席主席。

Moshe Zadka: 你是如何开始编程的?

Jannis Leidel:我开始接触编程是在高中的常规德国计算机科学课程中,在那里我涉猎了 Turbo Pascal 和 Prolog。我很快就进入了 Web 开发的世界,并使用 PHP3、Perl5 和 MySQL 编写了一些小型网站。后来在大学里,我在从事媒体艺术项目时再次学习了编程,发现 Ruby、Perl 和 Python 特别有用。我最终坚持使用 Python,因为它的多功能性和易用性。从那时起,我很高兴能够在我的职业生涯中使用 Python 和开放 Web 技术(HTML/JS/CSS)。

Zadka: 你是如何开始接触开源的?

Leidel:作为大学艺术项目的一部分,我需要一种与各种 Web 服务对话并与一些电子设备交互的方法,但发现我之前的 PHP 技能无法胜任这项任务。因此,我参加了有关使用 Python 编程的课程,相比库,我对学习更多有关框架如何工作更感兴趣,因为它们进一步体现了我想了解的最佳实践。特别是,新生的 Django Web 框架对我很有吸引力,因为它倾向于一种务实的方法,并为如何开发 Web 应用程序提供了大量指导。 2007 年,我作为学生参与了 Google Summer of Code for Django,后来为 Django 及其可重用组件生态系统做出了更多贡献,不久我也成为了 Django 核心开发人员。在完成学位期间,我能够利用这些技能成为一名自由职业者,并花时间在 Django 社区的许多不同部分工作。在那时,横向移动到更广泛的 Python 社区不过是很自然的。

Zadka: 你的日常工作是什么?

Leidel:我是 Mozilla 的一名软件工程师,致力于为 Firefox 数据管道开发数据工具。实际上,这意味着我在更广泛的 Firefox 工程团队中工作,从事各种内部和面向公众的基于 Web 的项目,这些项目帮助 Mozilla 员工和社区成员理解 Firefox Web 浏览器发送的遥测数据。我目前的部分重点是维护我们的数据分析和可视化平台,该平台基于开源项目 Redash,并对其做出贡献。我参与的其他项目是我们的下一代遥测系统 Glean 和一个允许你在浏览器(包括 Scientific Python 堆栈)中进行数据科学的工具 Iodide。

Zadka: 你是如何参与 Jazzband 的?

Leidel:早在 2015 年,我就对单独维护很多人所依赖的项目感到沮丧,并看到我的许多社区同行都在为类似的问题苦苦挣扎。我不知道有什么好方法可以让社区中更多的人对长期维护感兴趣。在某些情况下,我觉得新的“社会编码”范式的社会性的不足,而且常常是孤立的,有时甚至对新老贡献者来说都是创伤。我相信在我们的社区中,我现在觉得无法容忍的不平等现象在当时更加猖獗,这使得为贡献者提供一个安全的环境变得困难——我们现在知道这对于稳定的项目维护至关重要。我想知道我们是否缺少一种更具协作性和包容性的软件开发方法。

Jazzband 项目的启动是为了降低进入维护的门槛,并简化其中一些较无聊的方面(例如,围绕 CI 的最佳实践)。

Zadka: 你最喜欢 Jazzband 的哪一点?

Leidel:我最喜欢 Jazzband 的一点是,我们确保了许多人所依赖的许多项目的维护,同时还确保任何经验水平的新贡献者都可以加入。

Zadka: Jazzband 的“roadie”的工作是什么?

Leidel:“roadie”是指处理 Jazzband 幕后所有事务的人。这意味着,例如,处理新项目的进入、维护 Jazzband 网站以处理用户管理和项目发布、充当安全或行为准则事件的第一响应者等等。“roadie”这个词是从音乐和演出行业借来的,指的是支持人员,他们负责在巡回演出中几乎所有需要做的事情,除了实际的艺术表演。在 Jazzband,他们的存在是为了确保成员可以在项目中工作。这也意味着,在有意义的情况下,某些任务是部分或完全自动化的,并且最佳实践被应用于大多数 Jazzband 项目,如打包设置、文档托管或持续集成。

Zadka: 作为 Jazzband 的“roadie”,你工作中最具挑战性的方面是什么?

Leidel:目前,我作为“roadie”的工作中最具挑战性的方面是实施社区成员提出的 Jazzband 改进,而不影响他们所依赖的工作流程。换句话说,Jazzband 越大,在概念级别上扩展项目变得越困难。具有讽刺意味的是,我是目前唯一的“roadie”,独自处理一些任务,而 Jazzband 却试图阻止其项目发生这种情况。这是 Jazzband 未来的一大担忧。

Zadka: 对于有兴趣想知道能否加入 Jazzband 的人,你有什么想说的?

Leidel:如果你有兴趣加入一群相信协作工作比单独工作更好的人,或者如果你一直在为自己的维护负担而苦苦挣扎,并且不知道如何继续,请考虑加入 Jazzband。它简化了新贡献者的进入流程,提供了一个争议解决框架,并自动发布到 PyPI。有许多最佳实践可以很好地降低项目无人维护的风险。

Zadka: 你还有什么想告诉我们的读者的吗?

Leidel:我鼓励每个从事开源项目的人都考虑屏幕另一边的人。要有同理心,记住你自己的经历可能不是你同龄人的经历。要明白你是全球多元化社区的成员,这要求我们始终尊重我们之间的差异。


via: https://opensource.com/article/20/2/python-maintained

作者:Moshe Zadka 选题:lujun9972 译者:stevenzdg988 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出