2022年9月

为了简化 Java 的繁琐,我制作了一个 Groovy 工具来分析我的音乐目录。

最近,我一直在研究 Groovy 是如何简化略微繁琐的 Java 的。在这篇文章中,我开始了一个简短的系列,通过创建一个分析我的音乐目录的工具来演示 Groovy 脚本。

在本文中,我将演示 groovy.File 类如何扩展和精简 java.File 并简化其使用。这为查看音乐文件夹的内容提供了一个框架,以确保预期的内容(例如,cover.jpg 文件)就位。我使用 JAudiotagger 库 来分析音乐文件的标签。

安装 Java 和 Groovy

Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的版本可能都在你的 Linux 发行版的仓库中。 Groovy 也可以直接从 Apache Foundation 网站 安装。对于 Linux 用户来说,一个不错的选择是 SDKMan,它可用于获取 Java、Groovy 和许多其他相关工具的多个版本。对于本文,我使用以下 SDK 版本:

  • Java:版本 11.0.12-open 的 OpenJDK 11
  • Groovy:版本 3.0.8

音乐元数据

最近,我重整了我的音乐消费方式。我决定使用优秀的开源 Cantata 音乐播放器,它是开源 MPD 音乐播放器 的一个前端。我所有的电脑的音乐都存储在 /var/lib/mpd/music 目录下。在该音乐目录下有艺术家子目录,在每个艺术家子目录下有专辑子目录,包含音乐文件、cover.jpg,偶尔还有 PDF 格式的内页说明。

我绝大部分的音乐文件都是 FLAC 格式的,有一些是 MP3 格式,可能还有一小部分是 OGG 格式。我选择 JAudiotagger 库的一个原因是它可以透明地处理不同的标签格式。当然,JAudiotagger 是开源的!

那么查看音频标签有什么意义呢?以我的经验,音频标签的管理极差。(提到音频标签,)我的脑海中浮现出“粗心”这个词。这是标签本身真正存在的问题,也可能是出于我自己的学究倾向。无论如何,这是一个可以通过使用 Groovy 和 JAudiotagger 解决的重要问题。不过,它不仅适用于音乐收藏。许多其他现实世界的问题也适用,如需要下沉到文件系统中的目录树来处理在那里找到的内容。

使用 Groovy 脚本

这是此任务所需的基本代码。我在脚本中加入了注释,这些注释反映了我通常留给自己的(相对简写的)“注释提醒”:

// 定义音乐库目录
def musicLibraryDirName = '/var/lib/mpd/music'
// 输出 CSV 文件标题行
println "artistDir|albumDir|contentFile"
// 迭代音乐库目录中的每个目录
// 这一层应该是艺术家目录
new File(musicLibraryDirName).eachDir { artistDir ->
    // 迭代艺术家目录中的每个目录
    // 这一层应该是专辑目录
    artistDir.eachDir { albumDir ->
        // 迭代专辑目录中的每个目录
        // 这里应该是内容
        // 或相关内容(如 `cover.jpg`,PDF 格式的内页说明)
        albumDir.eachFile { contentFile ->
            println "$artistDir.name|$albumDir.name|$contentFile.name"
        }
    }
}

如上所述,我使用 groovy.File 在目录树中移动。具体来说:

第 7 行创建一个新的 groovy.File 对象并在其上调用 groovy.File.eachDir(),第 7 行的 { 和第 18 行的结尾的 } 之间的代码是传给 eachDir()groovy.Colsue 参数。

这意味着 eachDir() 为目录中找到的每个子目录执行该代码。这类似于 Java lambda(也称为“匿名函数”)。 Groovy 闭包不会像 lambda 那样限制对调用环境的访问(在最新版本的 Groovy 中,如果你愿意,也可以使用 Java lambda)。如上所述,音乐库目录中的子目录应该是艺术家目录(例如,“Iron Butterfly” 或 “Giacomo Puccini”),因此 artistDireachDir() 传递给闭包的参数。

第 10 行对每个 artistDir 调用 eachDir(),第 10 行的 { 和第 17 行的 } 之间的代码形成另一个处理 albumDir 的闭包。

第 14 行,在每个 albumDir 上调用 eachFile(),第 14 行的 { 和第 16 行的 } 之间的代码形成了处理专辑内容的第三级闭包。

在本文的范围内,我对每个文件唯一需要做的就是开始构建信息表,我将其创建为一个以竖线分隔的 CSV 文件,它可以导入 LibreOfficeOfficeOnly 或任何其他电子表格。现在,代码输出前三列:艺术家目录名、专辑目录名和内容文件名(同样,第 2 行输出 CSV 标题行)。

在我的 Linux 笔记本电脑上运行它会产生以下输出:

$ groovy TagAnalyzer.groovy | head
artistDir|albumDir|contentFile
Habib Koite & Bamada|Afriki|02 - Ntesse.flac
Habib Koite & Bamada|Afriki|08 - NTeri.flac
Habib Koite & Bamada|Afriki|01 - Namania.flac
Habib Koite & Bamada|Afriki|07 - Barra.flac
Habib Koite & Bamada|Afriki|playlist.m3u
Habib Koite & Bamada|Afriki|04 - Fimani.flac
Habib Koite & Bamada|Afriki|10 - Massake.flac
Habib Koite & Bamada|Afriki|11 - Titati.flac
Habib Koite & Bamada|Afriki|03 – Africa.flac
[...]
Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell].flac
Richard Crandell|Spring Steel|Spring Steel.pdf
Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell].flac
Richard Crandell|Spring Steel|cover.jpg
$

在性能方面:

$ time groovy TagAnalyzer.groovy | wc -l
9870

real        0m1.482s
user        0m4.392s
sys        0m0.230s
$

又好又快。它在一秒半内处理近 10,000 个文件!对我来说足够快。可观的性能、紧凑且可读的代码,还有什么不喜欢的?

在我的下一篇文章中,我会打开 JAudiotagger 并查看每个文件中的标签。


via: https://opensource.com/article/22/8/groovy-script-java-music

作者:Chris Hermansen 选题:lkxed 译者:geekpi 校对:wxy

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

Introduce the differenct Fedora Linux editions

我们在使用 Fedora Linux 时有不同的偏好。例如,有些人选择 Fedora Linux,是因为 Fedora Workstation 默认使用 GNOME 作为其桌面环境。但也有一些人想使用 Fedora Linux 但想使用不同的桌面环境。或者也有一些人使用 Fedora Linux 有特定的需求,但不想被系统配置和应用安装所困扰。甚至有些人想根据自己的需要自由安装 Fedora Linux。因此 Fedora Linux 根据你的需要提供了多个版本。本文将介绍不同的 Fedora Linux 版本。

Fedora 官方版本

我们从 Fedora Linux 的 官方版本 Edition 开始,即 Fedora Workstation、Fedora Server 和 Fedora IoT。 Fedora Workstation 是 Fedora Linux 的官方版本,可以安装在笔记本电脑和台式电脑上。此版本附带 GNOME 作为默认桌面环境和各种标准应用,因此 Fedora Linux 已为日常使用做好准备。而 Fedora Server 专门用于服务器用途,提供邮件服务器、DNS 等的安装。最后一个是 Fedora IoT,用于物联网和边缘设备生态系统。

在 Fedora 项目网站主页上,你可以找到另外两个版本:Fedora CoreOS 和 Fedora Silverblue。Fedora CoreOS 是一个自动更新的操作系统,旨在安全、大规模地运行容器化工作负载。而 Fedora Silverblue 是一个不可变的桌面操作系统,旨在支持以容器为中心的工作流。

Introduce the different Fedora Linux editions: Fedora Workstation

更多信息可在此链接获得:

https://getfedora.org/

Fedora 定制版:可选桌面

Fedora 定制版 Spin 很受那些非常在意桌面外观的人的欢迎。大多数人都知道 Fedora Linux 只有 GNOME 作为默认桌面环境。即使你真的想使用 GNOME 以外的桌面环境,也有几个替代桌面选项。使用 Fedora 定制版,你可以在安装 Fedora Linux 时立即获得你最喜欢的桌面环境。你可以从 KDE Plasma、XFCE、LXQt、MATE、Cinnamon、LXDE 和 SoaS 中进行选择。此外,对于喜欢平铺窗口管理器的人,Fedora Linux 还提供了 Fedora i3 定制版,其中 i3 作为默认窗口管理器,并附带了几个标准应用。

Introduce the different Fedora Linux editions: Fedora Plasma

Introduce the different Fedora Linux editions: Fedora Cinnamon

更多信息可在此链接获得:

https://spins.fedoraproject.org/

Fedora 实验室:功能包

Fedora 实验室 Lab 是根据特定需求打包的 Fedora Linux 软件包集合。因此,这些版本的安装包都根据其功能提供了应用和必要的内容。Fedora 实验室提供多种软件包选择,例如 天文学 Astronomy 计算神经学 Comp Neuro 设计套件 Design Suite 游戏 Games 、JAM、 Python 教室 Python Classroom 安全实验室 Security Lab 机器人套件 Robotics Suite 科学 Scientific 。如果你想使用 Fedora Linux 进行设计工作,那么设计套件是你的正确选择。但是如果你喜欢玩游戏,你可以选择游戏版。

Introduce the different Fedora Linux editions: Fedora Design Suite

Introduce the different Fedora Linux editions: Fedora Games

更多信息可在此链接获得:

https://labs.fedoraproject.org/

Fedora 的其它下载

Fedora 的 其它下载 Alt Download 集合了特定目的的可选 Fedora Linux 安装程序,例如用于测试或用于特定架构。还有其他可选格式,例如网络安装程序或种子下载等格式。在这里你可以找到 网络安装程序 Network Installer 种子下载 Torrent Downloads 可选架构 Alternative Architectures 云基础镜像 Cloud Base Images 所有内容 Everything 测试镜像 Testing Images 和 Rawhide。

更多信息可在此链接获得:

https://alt.fedoraproject.org/

总结

你可以自由选择适合你偏好的 Fedora Linux 版本,而不是官方版本。但是,如果你想获得具有各种桌面外观的 Fedora Linux,那么 Fedora 定制版适合你。如果你希望 Fedora Linux 根据你的需要包含应用和软件包,你可以选择 Fedora 实验室。但是,如果你是专家并且想要更自由地安装 Fedora Linux,你可以在 Fedora 其它下载处浏览替代选项。希望本文可以帮助你选择合适的 Fedora Linux,并请在评论中分享你使用 Fedora Linux 的经验。

(题图由 Frédéric Perez 发布在 Unsplash


via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/

作者:Arman Arisman 选题:lkxed 译者:geekpi 校对:wxy

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

微软杀毒软件将 Chrome 和 Edge 识别为恶意软件

微软承认 Windows 内置的防病毒软件 Defender 将谷歌的 Chrome 浏览器、微软基于 Chromium 的 Edge 浏览器、Docker 桌面版、Discord 等几款主流应用标记为恶意软件。他们表示将几小时内发布补丁。这是 Defender 今年第三次发生此类事件:今年早些时候,一些 Chrome 的更新被标记为潜在有害;3 月份,该公司将自己的 Office 更新标记为勒索软件威胁。

消息来源:Windows Latest
老王点评:消息很短,事情也不复杂,就是 Defender 挺离谱。连自家的 Edge 都不放过。

科学家使用机器学习打造动物的“谷歌翻译”

动物的交流远比人耳听起来要复杂得多,比如,不仅每只鼹鼠都有自己的发声特征,而且每个群体都有自己的方言,甚至鼠王更替后会出现新的“官方语言”。近年来,科学家们已经开始使用机器学习来解码动物的沟通,来识别吱吱作响的小鼠何时受到了压力,或者果蝠为何在叫喊。甚至更雄心勃勃的项目正在进行中 —— 创建一个全面的乌鸦叫声目录,绘制抹香鲸的语法,甚至建立允许人类回话的技术。

消息来源:纽约时报
老王点评:小时候看的幻想故事里面人能和动物交流,但是那时候也没人告诉我们这是通过“人工智能”实现的啊。

GNU Grep 3.8 开始提醒不要使用 Egrep 和 Fgrep

自 2007 年以来,支持扩展正则表达式的 egrep 和匹配固定字符串的 fgrep 命令就已被废弃。从刚刚发布的 GNU Grep 3.8 开始,调用这些命令现在会向用户发出警告,告诉他们应该分别使用 grep -Egrep -F。在第七版的 Unix 中就有 egrepfgrep 命令,尽管将 grep 分成三个程序在 1970 年代的小型计算机上也许是有用的,但是 egrepfgrep 没有被 POSIX 标准化。

消息来源:Phoronix
老王点评:确实该清理一些历史遗留的破烂了。GNU 中这种历史遗迹应该不少。

Notesnook 是一个以隐私为重点的新的记事本应用程序,它决定开源了。

当你想到一个开源的安全记事本应用程序时,你会想到什么?

可能是 标准笔记 Standard Notes

? 它是一个开源的、端到端加密的应用程序。而且也正是 Linux 用户最好的记事应用程序之一。

然而,提供类似于流行的印象笔记功能的注重隐私的标准笔记替代品较少。

幸运的是,我们有一个新的选择加入了名单,即 Notesnook

? Notesnook 最近在 GPLv3 许可下进行了开源,以让社区帮助改进它,并确保该项目不至于走样。

目前,开发人员希望把重点放在改进 GitHub 仓库上,然后继续增加新的功能/其他开发活动。

Notesnook:它能提供什么?

notesnook

Notesnook 是一个开源的零知识笔记存储平台,具有端到端加密功能。

与标准笔记类似,你可以免费使用它,也可以选择高级计划来解锁更多的好处。一些亮点包括:

  • 手机端的应用锁。
  • 私人笔记保险库。
  • 密码保护的笔记共享。
  • 跨平台。

界面看起来像是组合了各种有用的东西。我有兴趣单独写篇点评,或许写篇比较文章,听起来不错,对吗?

它可用于 Windows、mac 和 Linux。你可以下载用于 Linux 桌面的 AppImage 文件,或者 .deb/.rpm。

?️ ? 为了庆祝开源,Notesnook 还为其 年度高级计划 提供高达 75% 的折扣,并提供 30 天退款保证。你可以试一试,看看你是否需要高级计划。

在印度付费的话,我看到有 80% 的折扣,使得一年的订阅费用只有 10 美元。其他地区的情况可能不同。

探索其 GitHub 页面官方网站 以了解更多。此外,你可以阅读他们的 博客文章,了解他们为什么决定要开源。

Notesnook

? 你认为 Notesnook 作为一个以隐私为中心的新的记事应用程序怎么样?


via: https://news.itsfoss.com/notesnook-goes-open-source/

作者:Ankush Das 选题:lkxed 译者:wxy 校对:wxy

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

Windows 用户在转换到 Linux 的过程中会遇到很多问题。如果反过来,一个一直用 Linux 的用户第一次用 Windows 或 macOS 会遇到什么问题呢?

一直用 Linux 的人第一次用 Windows 或 macOS 会怎样?

还记得 YouTube 频道 Linus Tech Tips 中 Linus Sebastian 尝试在 Linux 上玩游戏 的场面吗? 尽管终端显示了明显的警告, 他最后还是把他的桌面环境删掉了。

Linus Sebastian 弄坏了他的 Linux 系统

考虑到 Sebastian 日常用 Windows 玩游戏, 换到 Linux 肯定需要一定的时间。

所以,这是 Linux 的问题吗? 还是 Sebastian 搞错了?

难道说,任何对操作系统不熟悉的用户在第一次尝试使用该系统的时候都会遇到问题?

接下来,你可以从不同的角度去了解 Linux 用户第一次使用 Windows 或者 macOS 的感受。

Linux 用户第一次用 Windows 或 macOS 会非常容易?还是会和 Sebastian 用 Linux 时一样感觉糟糕?

这肯定是非常有趣的话题……

一位 DevOps 高级工程师 Scott Williams 在一系列推文中假想了 Linux 用户第一次用 Windows 或 macOS 的场面。

在 Windows 11 上怎么启用 TPM 2.0?

如何安装 Windows 的最新版本 Windows 11?

Scott Williams
今晚,看我在能不能在这台用了 4 年的笔记本电脑上启用 TPM2.0 并运行 Windows 11。这台电脑支持 Intel PTT,所以应该会很顺利吧?

怎样启用 TPM 2.0? 如何在 BIOS 菜单中找到它? 启用 TPM 2.0 安全吗? 我是否需要刷一个更新的 BIOS? 更新 BIOS 的过程中是否会弄坏我的主版?

这些就是些每个 Linux 用户(甚至是 macOS/Windows 用户)将系统升级到 Windows 11 时都会遇到的一些问题。

Linux 用户从来没有必要做如此奇怪的事情来让系统正常工作。即使是在 2022 年。但是 Windows 11 需要你在升级前了解 BIOS 设置和 TPM 芯片的情况。

虽然 Scott 提到的是旧笔记本电脑,但值得注意的是,即使是最新的主板(比如 Z590),你可能也需要调整 BIOS 设置或者刷一个版本更高的 BIOS 版本才能支持 Windows 11。

由于更新 BIOS 有一定的风险,这种事情即使是对于懂技术的用户也是很不方便。

我需要用杀毒软件吗?用哪个?

虽说苹果的 XProtect 和 Windows Defender 能提供基本保护,但对于想要更好保护的用户来说,在杀毒软件方面有几个选择:

Scott Williams
所以我究竟需不需要装杀毒软件?装哪个?

网上有那么多选择和软文,用户很难确定那个杀毒软件最好,已经为之付费是否值得。

而 Linux 用户就会这么想: 我竟然还要安装这个? 不会很浪费性能吗? 我需要这么多安全防护功能吗? Windows 不是一个安全的操作系统吗?

macOS 和 iCloud:一个爱情故事?

Scott Williams
iCloud 是什么?我怎么把它删掉?

Linux 用户们并不喜欢集成的云服务。他们宁愿挂载一个网盘(或网络存储器)。

即使他们选择了网盘,也应该按照用户的意图来工作。但是,在 macOS 上,你会经常被提示要使用 iCloud,同时 Siri 还会跳出来捣乱。

Linux 用户清理注册表

原先使用 Linux 的新手 Windows 用户为了能优化系统性能去清理注册表,但在面对那么多清理注册表和优化系统以提高性能的工具和选项时,可能会以一个没有反应的 Windows 而告终。

Scott Williams
Reddit上有些人说需要“清理注册表”,我按照几个教程删除了一些东西,然后现在我的 Windows 变得很奇怪。

即使在 2022 年,对于应该在什么时候手动或者用工具清理注册表还是没有明确的规定。

虽说资深 Linux 用户喜欢在尝试新东西前关注细节。但如果 GUI 中没有恰当的警告或提示,还怎么知道所有的注意事项呢。

经常需要重启

虽说不像 Linux 的重启那样,Windows 的重启可以修复问题。不过,我到底要在更新 Windows 或者安装软件后重启多少次啊?

Scott Williams
第一次尝试 Windows 或 macOS 的 Linux 用户是这样的:
“究竟需要安装多少个版本的 .NET? 已经重启了多少次了?”
“为什么我的 Adobe 版本不支持这个版本的 macOS? 难怪那么多人在用 macOS 时会遇到麻烦。苹果公司需要修复这个问题了。”

每次我重启的时候后台运行的程序都被干掉了。

为什么 Windows 就不能在检测新安装的程序或者更新的时候简单地刷新一下,而不是重启呢。Windows 为什么反着来呢。

这些东西还需要花钱? 我有 Windows 许可证还不够?

Linux 主要是自由和开源软件构成的,因此预装的工具也是免费的。

所以, 一个用惯那些工具的用户就不得不突然需要花钱买一个 Windows 许可证,而且还要支付软件费用。

微软是不是太贪婪了呢?

默认就缺少必须的软件包

在安装完 Windows 后我连压缩包都解压不了?Windows 真的是现代操作系统吗?

macOS 配置多显示器

Scott Williams
怎样让我的显示器在 macOS 上工作呢?

在 Linux 上配置多显示器非常轻松。但在 macOS 上完全不是那回事。

总结

归根到底,这要看用户的标准和你熟悉的内容。Windows 和 macOS 经常被看作标准的桌面系统。

然而相比之下,大多数人除了知道 Linux 很难用外,对有关 Linux 的东西了解甚少。

不过,你只要掌握使用 Linux 的要领,就像你掌握 Windows、macOS 那样,用 Linux 桌面环境就很轻松了。

只不过在用 Linux 的过程会遇到各种各样的问题,但你只要有耐心就能享受整个过程了。

Linux 本身没有什么问题,是其他系统用户未能熟悉 Linux 的问题。我们并不希望 Linux 变成 Windows,也不希望 Windows 表现得像 Linux,任何操作系统都应该“做它自己”。

但话又说回来,不应该因为一个长期使用 Windows 的用户在最初使用时没有良好的体验就把 Linux 排除在外,因为同样的情况也可能发生在一个长期使用 Linux 的用户尝试 Windows/MacOS 时。


via: https://news.itsfoss.com/linux-user-trying-windows-macos/

作者:Abhishek 选题:lkxed 译者:Kira-Pgr 校对:wxy

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

14 岁少年一小时破解澳大利亚情报机构的纪念币密码

澳大利亚信号局(ASD)为庆祝成立 75 周年,周四发布了仅有 5 万枚的纪念币,这个纪念币上有四层难度逐渐加大的密码信息。ASD 提供了一个表单,如果谁能破译这四层密码信息,他们很乐意为他提供一份工作。然而一位 14 岁的澳洲男孩,在短短一个多小时就成为第一个破译所有四层信息的人。不过,ASD 表示,该纪念币上还有隐藏的第五层密码信息,目前还没有人破解出来。

消息来源:ABC News
老王点评:后生可畏,亏得还悄悄隐藏了一个第五层(或许还有第六层?),ASD 才没有完全颜面扫地。

Ubuntu Unity 成为官方风味版

Canonical 在五年前就放弃了其开发的 Unity 桌面环境,转而使用 GNOME 作为默认桌面环境,并维护 KDE 等其它桌面环境作为官方风味版。2017 年 Ubuntu 17.04 的 Unity 7.5 成为最后的绝唱。不过,有喜爱 Unity 桌面的开发者维护了一个 Ubuntu Unity Remix 发行版,此前曾作为 Ubuntu 20.04 LTS 的非官方风味版而发布。并于今年发布了 Unity 7.6。该开发者本周宣布,从 Ubuntu 22.10 开始,Canonical 将正式接纳 Ubuntu Unity 并作为一种官方风味版本。

消息来源:9to5linux
老王点评:虽然开源具有开放性,即便项目原来的主人放弃,社区也有可能会接手而让项目重新复活。但是,这里面最难的不是“你可以”,而是“你做到”,这需要付出很多精力和承诺。比如国内的 CuteFish 夭折之后,虽然也有社区的一些人宣称接手,但是似乎没什么动静。

对 Linux 服务器的攻击比去年增加了 75%

趋势科技称,Linux 服务器正越来越多地受到勒索软件的攻击,在过去的一年里,由于网络犯罪分子希望将他们的攻击扩大到 Windows 操作系统之外,Linux 上检测到的勒索软件增加了 75%。LockBit 是近期最多产和最成功的勒索软件之一,现在它提供了一个基于 Linux 的变体,并已被用于在野外进行攻击。此外,基于 Linux 的加密货币挖掘恶意软件攻击也增加了 145%。

消息来源:ZDNet
老王点评:当人们认为 Linux 系统比 Windows 更安全时,安全团队可能会选择将重点放在防御 Windows 的网络犯罪上,而 Linux 往往承载着包括服务器在内的重要企业 IT 基础设施,一旦出现问题,可能造成的损失更大。