蚊章汇 - Joshua Allen Holm
type: channel
link: https://linuxcn.bwsl.wang/author/464/
description: Joshua Allen Holm
items: 来自开源爱好者的 7 本读物推荐
items: 2021 总结：10 个值得尝试的 DIY 物联网项目
items: 给开源爱好者的 10 个节日礼物创意
items: 2021 总结：Linux 方面的 10 篇好文章
items: 2021 总结：10 个创意树莓派项目
items: 用这个开源项目在 Linux 上玩复古视频游戏
items: 用 Hedy 教人编程
items: 让你爱上 Git 的 10 篇文章
items: 使用 FreeBSD 作为桌面操作系统
items: 10 个提高 Git 技能的资源

来自开源爱好者的 7 本读物推荐
type: item
date: 2022-10-20T19:55:00+08:00
description: 社区的成员们推荐这些书籍，涵盖了从有趣的悬疑小说到发人深省的非小说作品的各种类型，你一定能从中找到一本你想看的书！很高兴能为大家介绍 Opensource.com 的 2022 年暑期阅读清单。今年的榜单包含来自 Opensource.com 社区成员的 7 本精彩的读物推荐。你可以发现各种各样的书籍，涵盖从有趣舒适的谜团到探索发人深省主题的非小说类作品。我希望你能在这个榜单中找到感兴趣的书本。希望你喜欢！《每个 Java 程序员都应该知道的 97 件事：专家的集体智慧》《 每个 Java 程序员都应该知道的 97 件事：专家的集体智慧 97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts 》编辑：Kevlin Henney 和 Trisha Gee由 Seth Kenlon 推荐这本书是由 73 位在软件行业工作的不同作者共同撰写。它的优秀之处在于它不仅仅适用于 Java 编程。当然，有些章节会涉及 Java，但是也还有一些其他话题，例如了解你的容器环境、如何更快更好地交付软件、以及不要隐藏你的开发工具，这些适用于任何语言的开发。更好的是，有些章节同样适用于生活中的问题。将问题和任务分成小的部分是解决任何问题的好建议；建立多样化的团队对所有合作者都很重要；由从散乱的一块块拼图到拼好的完成品，看起来像是拼图玩家的思路，也适用于不同的工作角色。每章只有几页，总共有 97 个章节，你可以轻松跳过不适用于你自己的章节。无论你是一直在写 Java 代码、或者只是学过一点 Java，亦或是尚未开始学习 Java，对于对代码和软件开发过程感兴趣的极客来说，这都会是一本好书。《城市不是计算机：其他的城市智能》《 城市不是计算机：其他的城市智能 A City is Not a Computer: Other Urban Intelligences 》作者：Shannon Mattern由 Scott Nesbitt 推荐如今，让一切变得智能已经成为一种 时尚：我们的手机、家用电器、手表、汽车，甚至是城市都变得智能化了。对于城市的智能化，这意味着传感器变得无处不在，在我们开展业务时收集数据，并根据这些数据向我们推送信息（无论数据有用与否）。这就引出了一个问题，将所有高科技技术嵌入到城市中是否会使得城市智能化呢？在《城市不是计算机》这本书中，作者 Shannon Mattern 认为并不是这样的。城市智能化的目标之一是为市民提供服务和更好的城市参与感。Mattern 指出，但是实际上，智慧城市“希望将技术专家的管理想法与公共服务相融合，从而将公民重新设置为‘消费者’和‘用户’”，然而，这并不是在鼓励公民积极参与城市的生活和治理。第二个问题是关于智慧城市收集的数据。我们不知道收集了什么数据，以及收集了多少数据。我们也不知道这些数据使用在什么地方，以及是谁使用的。收集的数据太多了，以至于处理数据的市政工作人员会不堪重负。他们无法处理所有数据，因此他们专注于短期容易实现的任务，而忽略了更深层次和更紧迫的问题。这绝对达不到在推广智慧城市时所承诺的目标：智慧城市将成为解决城市困境的良药。《城市不是计算机》是一本短小精悍、经过深入研究的、反对拥抱智慧城市的论证。这本书让我们思考智慧城市的真正目的：要让百姓真正受益于城市智能化，并引发我们的思考：发展智慧城市是否必要呢。《git sync 谋杀案》《 git sync 谋杀案 git sync murder 》作者：Michael Warren Lucas由 Joshua Allen Holm 推荐Dale Whitehead 宁愿呆在家里，通过他的电脑终端与世界连接，尤其是在他参加的最后一次会议上发生的事情之后。在那次会议上，Dale 扮演了一个业余侦探的角色，解决了一桩谋杀案。你可以在该系列的第一本书《 git commit 谋杀案 git commit murder 》中读到那个案件。现在，Dale 回到家，参加另一个会议，他再次发现自己成为了侦探。在《 git sync 谋杀案 git sync murder 》中，Dale 参加了一个当地科技会议/科幻大会，会议上发现一具尸体。这是谋杀，还是只是一场意外？现在，Dale 是这些问题的“专家”，他发现自己被卷入了这件事，并要亲自去弄清楚到底发生了什么。再多说的话就剧透了，所以我能说《git sync 谋杀案》这本书十分引人入胜，而且读起来很有趣。不必先阅读《git commit 谋杀案》，才能阅读《git sync 谋杀案》，但我强烈推荐一起阅读该系列中的这两本书。作者 Michael Warren Lucas 的《git 谋杀案》系列非常适合喜欢悬…

2021 总结：10 个值得尝试的 DIY 物联网项目
type: item
date: 2022-02-03T22:15:58+08:00
description: 在 2021 年，我们的作者们多次分享了他们关于各种物联网项目的专业知识。物联网（IoT）是计算领域的一个令人着迷的发展方向。互联智能设备、家庭自动化以及相关的发展领域正在产生许多有趣的项目。在 2021 年，我们的作者们多次分享了他们关于各种物联网项目的专业知识。以下是十大最佳物联网文章。如何使用你选择的声音定制你的语音助手在这篇由 Rich Lucente 撰写的这篇文章中 了解 Nana and Poppy 项目。Nana and Poppy 项目是 Rich Lucente 为人工智能语音助手创建自定义问候的开源项目。他描述了整个过程，从录制必要的音频片段到编写代码将这些片段组合成完整的问候语。成品是五个送给曾祖父母和祖父母的定制语音助手，他们现在无论何时与语音助手互动都能听到孙辈的声音。用树莓派和 Prometheus 监测你家的温湿度Chris Collins 描述了他如何 利用 Prometheus 监测家中的温度和湿度。他提供了关于在树莓派操作系统上安装 Prometheus、检测 Prometheus 应用程序、设置 systemd 单元和日志记录等方面的详细说明，以创建用于监控温度和湿度数据的工具。本文建立在 Chris 以前写的一篇文章的基础上，这篇文章是这个系列的下一篇文章。用树莓派在家里设置温度传感器学习如何通过使用树莓派、DHT22 数字传感器和一些 Python 代码 设置温度传感器。在本文中，Chris Collins 解释了如何将传感器连接到树莓派，安装 DHT 传感器软件，并使用 Python 脚本获取传感器数据。他最后调侃说，未来的文章将更多地自动化从该设备收集数据，这是本列表中的前一篇文章。用智能手机远程控制你的树莓派Stephan Avenwede 解释了如何 使用你的智能手机来控制树莓派的 GPIO。本教程描述了如何安装和使用 Pythonic 来使用 Telegram 通过网络连接控制树莓派。在写这篇文章时，他并没有考虑到具体的最终项目，因此本文提供了广泛的指导，你可以将其应用于许多项目。Stephan 建议的一些可能的项目包括草坪灌溉和车库开门器。家庭自动化项目为什么选择开源Alan Smithee 在本文中 介绍了家庭自动化电子书。这本电子书包含了与家庭自动化相关的内容。Alan 的文章概述了为什么技术能让每个人的生活变得更好，并提供了一个下载电子书的链接。用 Grafana Cloud 监控你的树莓派在 Matthew Helmke 的这篇教程中，了解如何 用 Grafana Cloud 监控你的树莓派。该项目使用树莓派、Prometheus 时间序列数据库和 Grafana Cloud 帐户。Matthew 解释了如何在树莓派上安装 Prometheus，并将其连接到 Grafana Cloud，为你的树莓派提供监控。一种新的嵌入式开源操作系统Zhu Tianlong 提供了 RT-Thread 智能操作系统简介。本文解释了什么是 RT-Thread Smart，谁可能需要使用它，以及它是如何工作的。本文中还有一个章节对 RT-Thread Smart 和 RT Thread 进行了对比。使用 Rust 进行嵌入式开发本文由 Alan Smithee 撰写，Liu Kang 供稿，介绍了 使用 Rust 进行嵌入式开发。这个包含大量代码的教程展示了如何在 C 中调用 Rust，以及如何在 Rust 中调用 C。这里有大量使用 Rust 工具（如 Cargo）进行开发的代码示例和详细说明。开源 Linux 边缘开发入门Daniel Oh 解释了如何使用 Quarkus 云原生 Java 框架来 开始边缘开发。Daniel 首先简要介绍了他在教程中使用的操作系统 CentOS Stream。然后他介绍了教程的三个主要步骤:将物联网数据发送到轻量级消息代理。使用 Quarkus 处理反应性数据流。监控实时数据通道。什么是雾计算？你可能听说过云计算，但是 什么是雾计算？Seth Kenlon 将 雾计算 fog computing 描述为“云的外部‘边缘’”——由手机、手表和其他组成物联网的各种设备组成。via: https://opensource.com/article/22/1/open-source-internet-of-things作者：Joshua Allen Holm 选题：lujun9972 译者：CN-QUAN 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

给开源爱好者的 10 个节日礼物创意
type: item
date: 2022-01-30T21:39:17+08:00
description: 从 DIY 项目到电脑再到书籍，这份清单提供了培养创造力、学习和探索的礼物创意。你是否正在为你的节日购物清单上的人寻找很酷的礼物，或者为你自己的愿望清单寻找建议？如果是这样，请考虑以下十条建议。这些礼物建议中的每一个都以某种方式与开源精神相联系。从 DIY 项目到电脑再到书籍，这份清单提供了培养创造力、学习和探索的礼物建议。System76 电脑你身边的某人需要一个新的台式机、笔记本电脑或服务器吗？System76 应该是你首先应该寻找的地方之一。想找一些轻巧的移动设备吗？轻巧的 14 英寸 Lemur Pro 笔记本电脑是一个很好的选择。需要一个有大量处理能力、内存和存储空间的台式机？各种 Thelio 台式机中就有一款是你要找的。还有很多介于两者之间的其他选择。他们的电脑配备了 Ubuntu 或 Pop!\_OS，这是该公司自己的基于 Ubuntu 的 Linux 发行版，并有终身支持。System76 也支持 维修权法案。虽然不是唯一一家销售安装 Linux 系统的电脑的厂商，但他们肯定是最受欢迎的厂商之一。价格不一树莓派 400 个人电脑套件树莓派几乎不需要介绍。自从 2012 年第一款树莓派风靡全球以来，树莓派一直是最受欢迎的单板计算机之一，可用于教育、业余爱好者和手工爱好者们。树莓派 400 个人电脑套件 延续了这一趋势。除了一个显示器之外，这个套件包含了人们开始使用所需的一切。花 100.00 美元，你就可以得到树莓派 400（树莓派 4 系列的一个变种，内置于一个键盘外壳中）、一只鼠标、电源、micro HDMI 转 HDMI 电缆、一张预装树莓派操作系统的 SD 卡，以及一本《树莓派初学者指南》。虽然树莓派 400 不是世界上最强大的计算机，但对于你的礼物清单上的孩子来说，树莓派 400 完全可以作为一个得当的入门计算机。价格：100.00 美元树莓派 Build HAT树莓派的诸多优势之一是它能够通过各种附加板进行扩展。最近推出的一款附加板 —— 树莓派 Build HAT，可以用树莓派来控制多达四个乐高技术电机或 乐高教育 SPIKE 产品系列的传感器。Build HAT 适用于任何带有 40 针 GPIO 接头的树莓派。你可以使用专门开发的 Python 库对项目进行编码。Build HAT 可以使用外部 8V 直流电源（如 官方 Built HAT 电源）或 7.5V 电池组为自身、树莓派板以及乐高电机和传感器供电。价格：25.00 美元（加上一个项目所需的零件和配件的费用）CrowPi2CrowPi2 是一个 STEM 学习项目集合，放在一个由树莓派驱动的笔记本电脑式的机箱里。CrowPi2 套件有三种尺寸：基本型、高级型和豪华型。基本型套件包括一些附件，但不包括树莓派。高级套装配备了一个拥有 4GB 内存的树莓派 4B，并有比基本套装更多的配件选择。豪华套装配备了最多的配件和一个拥有 8GB 内存的树莓派 4B。所有三个套件都有太空灰或银色可供选择。一个可选的移动电源可以在不插入电源插座时为 CrowPi2 提供电源。如果你想了解更多关于 CrowPi2 的信息，你可以阅读 Seth Kenlon 的 对 CrowPi2 的点评。基本套件：339.99 美元高级套件：469.99 美元豪华套装：529.99 美元可选的移动电源：19.00 美元Keebio Quefrency 键盘推荐人：John HallKeebio Quefrency 键盘 对于任何想组装自己的键盘的人来说，都是一个很好的节日礼物！它是一款 65% 键盘，这可能是大多数人愿意去做的最小的键盘，因为它有 Home、PgUp、PgDn 和方向键。它是一个分体式的人体工程学键盘，但如果你难以适应分体式的键盘，你可以将两半重新组合起来。最重要的是，最新版本的 Quefrency 有热插拔插座，所以你可以在不需要焊接任何东西的情况下组装它。下面是一个廉价的 Quefrency 键盘组件：Quefrency rev4 PCBs 带有热插拔插座，加上 FR4 板（左边没有宏，右边有 65%）80 + 28 美元2u 稳定器（5 个）10 美元按键开关（70 个）16 美元键帽45 美元2.25u G20 左空格键 和 2.75u G20 右空格键8 + 8 美元USB C 到 USB C 键盘连接器4 美元共计 199 美元（不包括运费）正如零件清单中指出的，Keebio Quefrency rev4 需要五个稳定器：左 Shift 键左空格键右空格键回车键退格键Keebio Quefrency rev4 目标是构建 65% 键盘，它有一个缩短的右 Shift 键，不需要稳定器。许多键帽套装，甚至是相对便宜的套装，如 Artifact Bl…

2021 总结：Linux 方面的 10 篇好文章
type: item
date: 2022-01-24T01:17:15+08:00
description: 以下是 10 篇最受欢迎的 Linux 文章。2021 年，我们发表了远超 150 篇的 Linux 方面的文章。从桌面 Linux 用户小工具的文章到将 Linux 作为服务器操作系统的教程，以及介乎于两者之间的各种场景，这些文章已经涵盖了 Linux 生态系统的许多方面。所有这些文章都值得你花时间去阅读，但你可以从今年发表的这十篇好文章开始阅读。3 个开源工具，使 Linux 成为理想的工作站在这篇文章中，Seth Kenlon 介绍了 LibreOffice、AbiWord、Gnumeric 和 Pandoc，涵盖了 使 Linux 成为理想工作站的工具。他解释了在使用 Linux 作为桌面操作系统时，这些应用程序如何使你的工作效率提高。文章探讨了一些高级功能，如 LibreOffice 的无头模式，并提供了如何充分利用每个应用程序的小技巧。为什么我在 Linux 上使用 exa 而不是 lsls 命令是 Linux 中最常用的终端命令之一，但你知道它有一个现代的替代品，提供了许多有益的改进吗？Sudeshna Sur 的 文章 介绍了 exa 命令以及它相比 ls 的优势，讨论了 exa 如何跟踪添加到 Git 仓库的新文件、显示目录和文件树等等。我喜欢在 Linux 上编码的 5 个原因像许多人一样，Seth Kenlon 喜欢在 Linux 上编码。在这篇文章中，他分享了这样做的 五个原因。他喜欢在 Linux 上编码，因为它建立在逻辑的基础上，可以让你欣赏代码之间的关联，提供了源代码，并提供直接访问外设和抽象层的能力，使编写代码更容易。在 Linux 上使用可启动的 USB 驱动器来拯救 Windows 用户即使你喜欢 Linux，但有时你可能需要修复一台 Windows 电脑或为某人安装 Windows。在 Linux 上从 Windows ISO 创建一个可启动的 U 盘，并不像为 Linux 发行版制作一个可启动的 U 盘那样简单明了。在这个教程中，Don Watkins 演示了 如何使用 WoeUSB，这个工具可以为用户处理这个过程中所有棘手的部分。4 个用于运行 Linux 服务器的开源工具当使用 Linux 作为服务器操作系统时，Seth Kenlon 推荐了这 四个开源工具： Samba、Snapdrop、VLC 和 PulseAudio。正如 Seth 在他的文章中所指出的，这四个工具使得用 Linux 进行文件共享和流媒体变得很容易。3 个你需要尝试的 Linux 终端Linux 有许多不同的终端模拟器。Seth Kenlon 的这篇文章推荐了 3 个 Linux 终端，值得一试：Xfce 终端、rxvt-unicode 和 Konsole。他提供了每一个的简要概述，并指出了每个终端模拟器的优势。在你的 Linux 家庭实验室中运行 Kubernetes 的另外 5 个理由在 Seth Kenlon 2020 年的文章《在树莓派家庭实验室上运行 Kubernetes 的五个理由》的续篇中，他给出了 在 Linux 家庭实验室中运行 Kubernetes 的另外五个理由：Kubernetes 建立在Linux 的基础上，它很灵活，学习它可以为你提供个人发展，它使容器变得有意义，而且它有利于云原生开发。他还提供了一个额外的理由：因为它很有趣。6 个开源工具和技巧，为初学者保障 Linux 服务器的安全Sahana Sreeram 提供了 保证 Linux 服务器安全的六个优秀技巧。这个教程着眼于更新软件、启用防火墙、加强密码保护、禁用非必要的服务、检查监听端口，以及扫描恶意软件。Sahana 提供的技巧可以帮助 Linux 初学者学习保持 Linux 服务器安全的基本知识。Linux 如何使一所学校为大流行病做好准备Don Watkins 采访了威斯康星州莫诺纳市 圣心玛利亚学校 的教师 Robert Maynord，介绍了该校 将他们的电脑换成 Linux 的情况。Maynord 分享了关于他是如何对 Linux 感兴趣的轶事，他为把学校的计算机换成 Linux 所采取的第一个步骤，Linux 如何使学校受益等等。Don 在这次采访中提出了许多很好的问题，Maynord 为有意采用 Linux 的学校提供了许多有用的信息。在 Linux 上运行你喜欢的 Windows 应用程序有时，在切换到 Linux 之后，你仍然需要那个只在 Windows 下运行的特定应用程序，或者真的想玩那个只能在 Windows 下运行的游戏。在这篇文章中，Seth Kenlon 提供了一个关于如何 在 Linux 上运行你喜欢的 Windows 应用程序 的教程。做到这一点的工具是 WINE。Seth 解释了什么是 W…

2021 总结：10 个创意树莓派项目
type: item
date: 2022-01-03T17:44:29+08:00
description: 你的下一个最流行的树莓派项目。树莓派是最受欢迎的单板计算机品牌之一。它流行的部分原因是人们用树莓派制造了大量独特而有趣的项目。人们在各种项目中使用了树莓派，并提供了说明，以便其他人可以重新创建他们的项目。以下是在 2021 年发表的十篇最受欢迎的树莓派文章。我希望在你摆弄自己树莓派时，它们能给你带来启发。《用树莓派建立一个家庭恒温器》Joe Truncale 在 2020 年 10 月搬进了新家。家里的老式供暖系统需要改进。他的文章提供了关于他如何 使用树莓派和 ThermOS 来替换家中的恒温器的详细说明。《在树莓派上建立一个精简服务器》树莓派可以作为一个很好的服务器。Alan Formy-Duval 展示了如何 建立一个精简服务器 以节约系统资源。他的说明提供了许多关于如何最大限度地利用树莓派的有用提示。《我是如何在公共图书馆的树莓派 400 上教授 Python 的》树莓派是一个很好的教学工具。在这篇文章中，Don Watkins 讲述了他如何在一个公共图书馆 使用树莓派 400 教授 Python。他描述了他是如何设置树莓派 400 以及如何教授课程的。《用 Cockpit 管理你的树莓派》Alan Formy-Duval 解释了如何 使用 Cockpit 来管理你的树莓派。他详细介绍了如何在树莓派操作系统上安装和使用 Cockpit，并对 Cockpit 的功能做了大致的介绍。正如他在文章中指出的那样，“就像在其他 Linux 系统上一样，Cockpit 可以在树莓派上发挥功用”，这使得这篇文章也可以用于有兴趣在其他系统上使用 Cockpit 的用户。《使用树莓派建立一个具有移动连接功能的路由器》你可以用树莓派轻松地制作你自己的路由器。在这个教程中，Lukas Janėnas 解释了如何 建立一个具有移动连接的路由器。他提供了关于如何在树莓派上安装和配置 OpenWRT 的详细说明。《用树莓派和一个低功耗显示器追踪你的家庭日历》Javier Pena 使用树莓派和一个墨水屏显示器 建立了一个家庭日历。这篇文章提供了关于该项目中使用的硬件和软件的信息。使用所提供的说明，你可以轻松地为自己的家庭创建一个数字日历。《用树莓派投射你的安卓设备》在 Sudeshna Sur 的这篇文章中，可以了解到如何 用树莓派投射你的安卓设备。Sudeshna 使用 Scrcpy 来完成这个任务。她提供了关于如何设置 Scrcpy 和配置你的手机的说明，以便它们一起工作。《对树莓派 400 的测评》Don Watkins 测评了树莓派 400，提供了多张他的树莓派 400 开箱图片，并提供了对该设备和捆绑配件的出色书面评论。关于这个 100 美元的大礼包，他有很多好话要说。《用树莓派和 Prometheus 监控你家里的温度和湿度》在 Chris Collins 的教程中，学习如何 监测你家里的温度和湿度。Chris 解释了如何使用 Prometheus 和树莓派来收集和存储数据。他提供了关于安装 Prometheus 的说明，设置 Prometheus 来跟踪数据，创建一个 systemd 单元和日志记录等等，最后还说明了如何把所有的步骤结合起来创建完成的项目。《在树莓派集群中部署 Ceph》AJ Canlas 教授了如何 在树莓派集群中部署 Ceph。这篇文章提供了使用 ceph-ansible Ansible 剧本部署 Ceph 的说明。需要的硬件是四个树莓派 4B 4GB 型号，四个 32GB 的 microSD 卡用于启动操作系统，四个带风扇和散热器的外壳，四个树莓派电源，以及六个 32GB 的 USB 闪存用于 Ceph OSD 节点。这是一套很大的设备，但如果你手上有这样的硬件，这是一个迷人的项目，可以尝试一下。via: https://opensource.com/article/21/12/raspberry-pi-projects作者：Joshua Allen Holm 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

用这个开源项目在 Linux 上玩复古视频游戏
type: item
date: 2021-05-28T14:20:30+08:00
description: ScummVM 是在现代硬件上玩老式视频游戏的最直接的方法之一。玩冒险游戏一直是我使用计算机经验的一个重要部分。从最早的基于文本的冒险游戏到 2D 像素艺术、全动态视频和 3D 游戏，冒险游戏类型为我提供了很多美好的回忆。有时我想重温那些老游戏，但它们很多都是在 Linux 出现之前发布的，那么我如何去重玩这些游戏呢？我使用 ScummVM，说实话，这是我最喜欢的开源项目之一。什么是 ScummVMScummVM 是一个设计用来在现代硬件上玩老式冒险游戏的程序。ScummVM 最初是为了运行使用 卢卡斯艺术 LucasArt 的 疯狂豪宅脚本创作工具 Script Creation Utility for Maniac Mansion （SCUMM）开发的游戏，现在支持许多不同的游戏引擎。它可以支持几乎所有经典的 雪乐山娱乐 Sierra On-Line 和卢卡斯艺术的冒险游戏，以及其他发行商的大量冒险游戏。ScummVM 并不支持所有的冒险游戏（目前），但它可以用来玩数百种冒险游戏。ScummVM 可用于多个平台，包括 Windows、macOS、Linux、Android、iOS 和一些游戏机。为什么使用 ScummVM有很多方法可以在现代硬件上玩老游戏，但它们往往比使用 ScummVM 更复杂。DOSBox 可以用来玩 DOS 游戏，但它需要调整设置，使其以正确的速度进行游戏。Windows 游戏可以用 WINE 来玩，但这需要游戏及其安装程序都与 WINE 兼容。即使游戏可以在 WINE 下运行，一些游戏仍然不能在现代硬件上很好地运行，因为硬件的速度太快了。这方面的一个例子是《 国王密使 6 King's Quest VI 》中的一个谜题，它涉及将点燃的鞭炮带到某个地方。在现代硬件上，鞭炮爆炸的速度太快了，这使得在角色不死很多次的情况下不可能到达正确的位置。ScummVM 消除了其他玩复古冒险游戏的方法中存在的许多问题。如果是 ScummVM 支持的游戏，那么它的配置和玩都很简单。在大多数情况下，将游戏文件从原始游戏光盘复制到一个目录，并在 ScummVM 中添加该目录，就可以玩该游戏了。对于多张光盘上的游戏，可能需要重命名一些文件以避免文件名冲突。需要哪些数据文件的说明以及任何重命名的说明都记录在 每个支持的游戏 的 ScummVM 维基页面上。ScummVM 的一个奇妙之处在于，每一个新版本都会增加对更多游戏的支持。ScummVM 2.2.0 增加了对十几种互动小说解释器的支持，这意味着 ScummVM 现在可以玩数百种基于文本的冒险游戏。ScummVM 的开发分支应该很快就会变成 2.3.0 版本，它整合了 ResidualVM 对 3D 冒险游戏的支持，所以现在 ScummVM 可以用来玩《 冥界狂想曲 Grim Fandango 》、《神秘岛 3：放逐者Myst III: Exile》和《 最长的旅程 The Longest Journey 》。其开发分支最近还增加了对使用 Adventure Game Studio 创建的游戏的支持，这为 ScummVM 增加了成百上千的游戏。如何安装 ScummVM如果你想从你的 Linux 发行版的仓库中安装 ScummVM，过程非常简单。你只需要运行一个命令。然而，你的发行版可能会提供一个旧版本的 ScummVM，它不像最新版本那样支持许多游戏，所以要记住这一点。在 Debian/Ubuntu 上安装 ScummVM：sudo apt install scummvm 在 Fedora 上安装 ScummVM：sudo dnf install scummvm 使用 Flatpak 或 Snap 安装 ScummVMScummVM 也可以以 Flatpak 和 Snap 的形式提供。如果你使用这些方式之一，你可以使用以下命令来安装相关的版本，它应该总是 ScummVM 的最新版本。flatpak install flathub org.scummvm.ScummVM 或snap install scummvm 编译 ScummVM 的开发分支如果你想尝试 ScummVM 尚未稳定的开发分支中的最新和主要的功能，你可以通过编译 ScummVM 的源代码来实现。请注意，开发分支是不断变化的，所以事情可能不总是正确的。如果你仍有兴趣尝试开发分支，请按照下面的说明进行。首先，你需要为你的发行版准备必要的开发工具和库，这些工具和库在 ScummVM 维基上的 编译 ScummVM/GCC 页面列出。一旦你安装了先决条件，运行以下命令：git clone <https://github.com/scummvm/scummvm.git> cd scummvm ./configure m…

用 Hedy 教人编程
type: item
date: 2021-04-12T19:18:37+08:00
description: Hedy 是一种专门为教人编程而设计的新型编程语言。学习编程既要学习编程逻辑，又要学习特定编程语言的语法。我在大学上第一堂编程课的时候，教的语言是 C++。第一个代码例子是基本的 “Hello World” 程序，就像下面的例子。#include <iostream> int main() { std::cout << "Hello World!"; return 0; } 老师直到几节课后才会解释大部分的代码。我们的期望是，我们只需输入代码，并最终了解为什么需要这些东西以及它们如何工作。C++（以及其他类似的语言）的复杂语法是为什么 Python 经常被建议作为一种更容易的编程教学语言。下面是 Python 中的同一个例子：print("Hello World!") 虽然 Python 中的 “Hello World” 基础例子要简单得多，但它仍然有复杂而精确的语法规则。print 函数需要在字符串周围加括号和引号。这对于没有编程经验的人来说，还是会感到困惑。Python 比 C++ 少了 “我以后再解释” 的语法问题，但还是有一些。Hedy 是一种专门为编码教学而设计的新语言，它通过在语言中将复杂性分成多个关卡来解决语法复杂性的问题。Hedy 没有马上提供语言的全部功能，而是采取循序渐进的方式，随着学生在 Hedy 的学习的通关，慢慢变得更加复杂。随着关卡的进展，该语言获得了新的功能，最终变得更像 Python。目前有七个关卡，但更多的关卡正在计划中。在第 1 关，Hedy 程序除了打印（print）一条语句（不需要引号或括号），提出（ask）一个问题，并回传（echo）一个答案外，不能做任何事情。第 1 关没有变量，没有循环，结构极精简。回传的工作原理几乎和变量一样，但只针对用户的最后一个输入。这可以让学生对基本概念感到舒适，而不必一下子学习所有的东西。这是一个第 1 关的 Hedy “Hello World” 程序：print Hello World 第 2 关引入了变量，但由于 print 函数没有使用引号，可能会出现一些有趣的结果。如果用来存储一个人的名字的变量是 name，那么就不可能打印输出 Your name is [name]，因为 name 的第一次使用（本意是字符串）和第二次使用（是变量）都被解释为变量。如果将 name 设置为（is） John Doe，那么 print Your name is name. 的输出就会是 Your John Doe is John Doe。虽然这听起来很奇怪，但这是一个引入变量概念的好方法，这恰好是第 3 关中增加的一个功能。第 3 关要求在字符串周围加引号，这使得变量的功能就像在 Python 中一样。现在可以输出与变量相结合的字符串，做出复杂的语句，而不用担心变量名和字符串中的单词之间的冲突。这个级别取消了 “回传”（echo）函数，这看起来确实是一个可能会让一些学习者感到沮丧的东西。他们应该使用变量，这是更好的代码，但如果一个 ask/echo 代码块变成无效语法，可能会让人感到困惑。第 4 关增加了基本的 if/else 功能。学生可以从简单的问/答代码转向复杂的交互。例如，一个问“你最喜欢的颜色是什么？”的提示可以根据用户输入的内容接受不同的回复。如果他们输入绿色，回答可以是“绿色！这也是我最喜欢的颜色。”如果他们输入其他的东西，回复可以是不同的。if/else 块是一个基本的编程概念，Hedy 引入了这个概念，而不必担心复杂的语法或过于精确的格式。第 5 关有一个 repeat 函数，在现有的功能上增加了一个基本的循环。这个循环只能多次重复同一个命令，所以它没有 Python 中的循环那么强大，但它让学生习惯了重复命令的一般概念。这是多介绍了一个编程概念，而不会用无谓的复杂来拖累。学生们可以先掌握概念的基础知识，然后再继续学习同一事物的更强大、更复杂的版本。在第 6 关，Hedy 现在可以进行基本的数学计算。加法、减法、乘法和除法都支持，但更高级的数学功能不支持。不能使用指数、模数或其他任何 Python 和其他语言能处理的东西。目前，Hedy 还没有更高关卡的产品增加更复杂的数学功能。第 7 关引入了 Python 风格的缩进，这意味着 repeat 可以处理多行代码。学生在这之前都是逐行处理代码，但现在他们可以处理代码块。这个 Hedy 关卡与非教学型编程语言能做的事情相比还是有很大的差距，但它可以教会学生很多东西。开始学习 Hedy 最简单的方法是访问 Hedy 网站上的 课程，目前有荷兰语、英语、法语、德语、葡萄牙语和西班牙语。这样一来，任何有网页浏览器的人都可以进入学习过程。也可以从 GitHub 下载 Hedy，并从命令行运行解释器，或者运行 …

让你爱上 Git 的 10 篇文章
type: item
date: 2021-01-04T20:09:36+08:00
description: 你对 Git 了解得越多，使用 Git 就会越容易。一起来回顾下年度最佳 Git 文章。Git 是开源开发者工具箱中最基本的工具。这个强大的版本控制系统有很多复杂的功能。使用 Git 不需要了解它所有的功能，但是对 Git 了解得越多，使用 Git 就会越容易。下面每篇文章都提供了一些奇技淫巧来提升和增强你的 Git 技能。怎么解决 git 合并时的冲突Brian Breniser 的这篇教程从 git merge 的定义以及解释什么是冲突开始。然后他详细解释了在合并时如果有冲突如何解决冲突。Breniser 还提了一些能学习更多关于解决冲突和其他 Git 功能的建议。4 个不可或缺的 Git 脚本Vince Power 分享了他最重要的 Git 脚本。这些脚本可以从 Git Extras 包中获得，该包提供了 60 多个 Git 增强脚本。Power 最爱的脚本有：在无需打开文本编辑器的情况下编辑 .git-ignore 的 git-ignore ；用于提供 Git 仓库的摘要的 git-info；用来处理 GitLab 的合并请求（MR）和 GitHub 的拉取请求（PR）的 git-pr；把 Git 的提交（commit）、标签（tag）和推送（push）合为一体的 git-release。完美生活：git rebase -i在 Dave Neary 的这篇文章中可以学习使用 git rebase -i 来修改你的 Git 提交历史。Neary 从解释 Git 是如何把提交历史记录到仓库中的以及 git commit 和 git rebase 的区别。之后，他又解释了如何使用 git rebase -i 让 Git 仓库的提交历史变得简洁。这个命令能让你把“修复书写错误”的提交合进其它提交里，把几个相似的小提交合并成一个大的提交。Git Cola 让使用 Git 变得简单Seth Kenlon 演示了如何使用 Git Cola。Git 是个命令行工具，这对于有些人来说是有学习门槛的。Git Cola 提供了一个图形界面，因此不习惯用命令行的用户也可以使用 Git。在此文中，Kenlon 展示了如何安装 Git Cola，并使用 Git Cola 的图形用户界面完成了很多 Git 提交任务。6 个在团队中使用 Git 的最佳实践从设计上讲，Git 是个协同工具，但是关于如何协同的很多细节是由团队自行决定的。Ravi Chandran 提了一些建议，团队应该采用这些建议更高效地使用 Git。Chandran 在文中列出的 6 个最佳实践是：“使约定正式化”，“正确地合并修改”，“经常变基你的功能分支”，“在合并之前把压扁你的提交”，“使用标签”，“让软件的可执行程序打印标签”。改变我使用 Git 工作方式的七个技巧Rajeev Bera 分享了 7 个 Git 技巧，这些技巧能提升 Git 的用户体验。文章探讨了 Git 的自动更正、提交计数、仓库优化、备份未追踪的文件、了解 .git 目录、在另一个分支查看文件以及在 Git 下搜索。使用 tmux 和 Git 定制化我的 Linux 终端Moshe Zadka 展示了他是如何使用 tmux 和 Git定制化他的 Linux 终端的。Zadka 的文章是个人工作流的优秀探索。他使用 GNOME 终端，用 tmux 和一些能让他快速查看 Git 仓库状态的功能来增强终端。他只需要用一个字母就可以提交文件或把提交推送到远程仓库。使用 Lazygit 让复杂的 Git 任务简单化Jesse Duffield 解释了如何使用Lazygit，一个能让使用 Git 变得简单的终端界面。Lazygit 的开发者 Duffield 详细阐述了如何使用这个界面来暂存文件、以交互方式变基、进行筛选、搜索提交以及创建一个 PR。使用子模块和子树来管理 Git 项目子模块和子树是两种在 Git 仓库中引入嵌套的子项目的方式。在使用子模块和子树来管理 Git 项目中，Manaswini Das 解释了两个选项的工作原理和区别。不喜欢 diff？那么试试 MeldBen Nuttall 展示了如何使用 Meld 代替 diff来进行对比和合并修改。Meld 是图形化的 diff，输出更容易理解。Nuttall 演示了使用 diff 和 Meld 进行对比的区别。他还解释了 Meld 是如何识别 Git 项目的，这意味着在 Git 中一个文件被提交之后，可以用 Meld 来搜索修改。你想学习关于 Git 的什么内容？请在评论去分享你的想法。via: https://opensource.com/article/20/12/git作者：Joshua Allen Holm 选题：lujun9972 译者：l…

使用 FreeBSD 作为桌面操作系统
type: item
date: 2020-05-17T19:02:24+08:00
description: FuryBSD 的实时桌面环境能让你在实际使用之前先尝试。FreeBSD 是一个很棒的操作系统，但是从设计上讲，它并没有自带桌面环境。如果不从 FreeBSD 的 ports 和软件包集安装其他软件，那么 FreeBSD 仅能体验命令行。下面的截图显示了在安装过程中选择了每个“可选系统组件”后，登录 FreeBSD 12.1 的样子。FreeBSD 可以用各种桌面环境中的任何一种来变成桌面操作系统，但是这需要时间、精力和遵循大量书面说明。使用使用 desktop-installer 包（为用户提供基于文本的菜单并帮助自动执行大部分过程）仍然非常耗时。这两种方法的最大问题是，用户可能在花了很多时间进行设置之后，可能会发现他们的硬件系统与 FreeBSD 不完全兼容。FuryBSD 通过提供实时桌面镜像来解决此问题，用户可以在安装之前对其进行评估。目前，FuryBSD 提供 Xfce 镜像和 KDE 镜像。每个镜像都提供了一个已预安装桌面环境的 FreeBSD。如果用户试用该镜像并发现其硬件工作正常，那么他们可以安装 FuryBSD，并拥有一个由 FreeBSD 驱动的即用桌面操作系统。在本文中，我会使用 Xfce 镜像，但 KDE 镜像的工作原理完全一样。对于安装过 Linux 发行版、BSD 或任何其他类 Unix 的开源操作系统的人，FuryBSD 的上手过程应该很熟悉。从 FuryBSD 网站下载 ISO，将它复制到闪存盘，然后从闪存盘启动计算机。如果从闪存盘引导失败，请确保“安全引导”已禁用。从闪存盘启动后，桌面环境将自动加载。除了“家”、“文件系统”和“回收站”图标外，实时桌面还有用于配置 Xorg 的工具、入门指南、FuryBSD 安装程序和系统信息程序的图标。除了这些额外功能以及一些自定义的 Xfce 设置和壁纸外，桌面环境除了基本的 Xfce 应用和 Firefox 之外并没有其他功能。此时仅加载基本的图形驱动，但足以检查 FuryBSD 是否支持系统的有线和无线网络接口。如果网络接口没有一个能自动工作，那么 Getting Started.txt 文件包含有关尝试配置网络接口和其他配置任务的说明。如果至少有一个网络接口有效，那么可以使用 Configure Xorg 应用安装 Intel、NVidia 或 VirtualBox 图形驱动。它将下载并安装驱动，并且需要重新启动 Xorg。如果系统未自动重新登录到实时镜像用户，那么密码为 furybsd（你可以使用它来登录）。配置后，图形驱动将转移到已安装的系统中。如果一切都可以在实时环境中正常运行，那么 FuryBSD 安装程序可以将 FuryBSD 配置并安装到计算机上。该安装程序在终端中运行，但提供与大多数其他 BSD 和 Linux 安装程序相同的选项。系统将要求用户设置系统的主机名、配置 ZFS 存储、设置 root 密码，添加至少一个非 root 用户以及配置时间和日期。完成后，系统可以引导到预装有 Xfce （或 KDE）的 FreeBSD 中。FuryBSD 完成了所有困难的工作，甚至还花了很多精力使桌面看起来更漂亮。如上所述，桌面环境没有大量预装软件，因此几乎肯定要安装额外的软件包。最快的方法是在终端中使用 pkg 命令。该命令的行为很像 dnf 和 apt，因此使用过其中之一的来自 Linux 发行版的用户在查找和安装软件包时应该感到很熟悉。FreeBSD 的软件包集合非常多，因此大多数知名的开源软件包都可用。如果用户在没有太多 FreeBSD 经验的情况下尝试 FuryBSD，应查阅 FreeBSD 手册，以了解有关如何以 FreeBSD 的方式操作。有任何 Linux 发行版或其他 BSD 使用经验的用户应该能弄清很多事情，但是手册可以帮助你弄清一些差异。进一步了解 FreeBSD 的一个很好的资源是 Michael W. Lucas 的 《Absolute FreeBSD，第三版》。via: https://opensource.com/article/20/5/furybsd-linux作者：Joshua Allen Holm 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

10 个提高 Git 技能的资源
type: item
date: 2020-01-02T17:40:16+08:00
description: 年末总结一下 Git 的最佳表现。以下是告诉你可以在新的一年中以新奇的方式使用 Git 的十篇文章。2019 年过去了，是时候回顾一下我们（opensource.com）今年发表的有关 Git 的前 10 篇文章了。这些文章包括从用例和教程到一些非常有趣的（甚至有些非常规的）使用 Git 的方法。所有这些文章都可以帮助你提高 Git 技能，但是，如果你确实需要 Git 入门介绍，请务必查看我们的《Git 入门：术语入门》文章，并下载我们的 Git 备忘单。Molly de Blanc 写的《GNOME 项目如何使用 Git》考察了 GNOME 项目采用的自托管 GitLab 实例的做法，该实例作为 GNOME 项目集中保存对 GNOME 做出的贡献的位置。De Blanc 从事于非编码职位，因此她的文章还探讨了切换到 GitLab 如何使主要角色不是编写代码的贡献者受益。Ahmad Awais 写的《Emoji-Log：编写 Git 提交信息的新方法》解释了如何使用 Emoji-Log（一种直白的、开源的 Git 提交日志标准）来编写更好、更用户友好的 Git 提交消息。本文概述了 Emoji-Log 背后的理论以及可添加到 .bashrc、.zshrc 或 .gitconfig 中的配置示例，以便你快速开始使用 Emoji-Log。在《用 Git 管理你的每日行程》中，Seth Kenlon 解释了如何使用 Git 来管理日历。通过结合 Org 模式、Git 和其他一些工具，Kenlon 描述了如何创建可在设备之间同步的基于 Git 的日历工作流。《用 Git 作为聊天应用的后端》，Seth Kenlon 探索了另一种使用 Git 的非常规方式。在本文中，他探讨了 GIC，这是一个用 Node.js 编写的聊天客户端，其中 Git 用作后端数据库。GIC 是一个概念验证模型，不是供产品环境使用的东西，但是它提供了一个有趣的示例，说明了使用 Git 的真正独特方法。Alan Formy-Duval 的《Git 学习实用练习》是一份他为提高 Git 技能而努力的编年史。他分享了自己的经验，以使其他人受益于他所学，而 Git 新手将从这篇对 Git 核心功能的出色概述中受益匪浅。《用 Git 帮助写作者更好地完成工作》的作者 Seth Kenlon 着眼于写作者如何从基于 Git 的工作流中受益。本文介绍了如何使用 Git 和 Atom 利用 Markdown 进行书写。通过遵循本文中的示例，写作者可以轻松地将复杂的版本控制系统添加到其编写工作流中。Sachin Patil 在《如何使用 Magit 管理 Git 项目》中，解释了如何使用 Emacs 的 Magit 扩展来管理 Git 存储库。本文提供了有关如何在 Emacs 中执行一系列关键 Git 任务的清晰示例。这些示例带有说明各种任务的屏幕截图。《把“点文件”放到版本控制中》的作者 Matthew Broberg 演示了如何使用 Git 存储放在主目录中的点文件。将你的点文件存储在 Git 存储库中，可以更轻松地在计算机之间共享系统配置，并且，如果你愿意的话，也可以与其他人共享配置。这篇文章也有不要共享哪些文件的警告，因为共享错误的点文件会将其暴露给其他人。Austin Dewey 的《4 种用于 Git 加密的机密管理工具》在本文中比较了 Git-crypt、BlackBox、SOPS 和 Transcrypt，研究了在 Git 中存储机密的工具。本文涵盖四个主要领域：支持的加密类型、每个项目的目标、项目的工作流和差异以及其他功能。Seth Kenlon 的《使用 Git 管理 Git 服务器》解释了如何使用 Gitolite 管理 Git 服务器。Gitolite 是使用 Git 来管理 Git 服务器的“管理杂项的后端应用程序”。本文演示了如何安装、配置和使用 Gitolite，并提供了清晰的示例详细说明了该过程的每个步骤。via: https://opensource.com/article/19/12/git-resources作者：Joshua Allen Holm 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出