4小时前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20251116
今天的科技日报信息量爆炸!从 Rust 编写的全新 JavaScript 引擎 Brimstone,到 AirPods 摆脱苹果生态的 librepods 项目,再到对 Anthropic AI 间谍报告的质疑,让你一次看个够!还有纯客户端应用的政治考量、小型服务器面临的威胁、突破思维定势的方法等等,绝对干货满满!想知道互联网安全现状?想了解如何用HackRF Pro接收WWVB信号?赶紧点开全文,一起探索科技世界的最新动态吧!

---
## Brimstone:Rust 编写的 ES2025 JavaScript 引擎
这篇文章介绍了一个名为 Brimstone 的全新 JavaScript 引擎,它使用 Rust 语言编写,目标是实现 ES2025 标准。Rust 语言以其安全性和性能而闻名,选择 Rust 意味着 Brimstone 引擎在设计上就注重内存安全和并发性。
Brimstone 旨在成为一个高性能、安全可靠的 JavaScript 引擎。目前该项目还处于早期开发阶段,但已经吸引了不少关注。使用 Rust 编写 JavaScript 引擎是一个有趣的尝试,Rust 提供的内存安全保障可以减少 JavaScript 引擎中常见的安全漏洞。该项目在 GitHub 上开源,开发者可以参与贡献代码、报告问题或提出建议。Brimstone 的目标是完全兼容 ES2025 标准,这意味着它将支持 JavaScript 的最新特性。Rust 的性能优势也有望使 Brimstone 在执行 JavaScript 代码时更加高效。该项目还处于积极开发中,未来可能会有更多的优化和改进。对于关注 JavaScript 引擎和 Rust 编程的开发者来说,Brimstone 是一个值得关注的项目。
由于没有评论内容,这里跳过评论分析。
- 原文: [Brimstone: ES2025 JavaScript engine written in Rust](https://github.com/Hans-Halverson/brimstone)
- Hacker News: [https://news.ycombinator.com/item?id=45944337](https://news.ycombinator.com/item?id=45944337)
- 作者: ivankra
- 评分: 62
- 评论数: 13
- 发布时间: 2025-11-16 19:41:10
---
## 运行“信任的信任反思”编译器
本文主要探讨了 Ken Thompson 在其图灵奖演讲中提出的供应链安全问题,并实际运行了他用于在 C 编译器中植入后门的代码。
文章首先回顾了 Ken Thompson 在 1983 年的演讲,该演讲探讨了如何修改 C 编译器二进制文件,以便在编译 "login" 程序时插入后门,且不留下任何源代码痕迹。文章将 Ken 的方法分为三个步骤:
1. 编写一个能够打印自身源代码的自复制程序(quine)。文章提供了 Python 和 Go 语言的 quine 示例,解释了其基本原理,即将程序文本放入字符串字面量中,并使用占位符来重复该字符串。
2. 编译器在编译自身时,一些重要的细节可能只存在于编译器二进制文件中,而不在实际源代码中。文章举例说明了 C 字符串中转义序列的数值,这些数值可以被编译器“学习”并嵌入到二进制文件中。
3. 结合前两步,使编译器“学习”如何错误编译目标程序(例如 "login")。通过修改编译器,使其能够识别特定输入程序并修改其代码,同时能够识别自身并插入用于进行这些修改的代码。
文章随后介绍了作者获取 Ken Thompson 提供的代码 `nih.a` 的过程,该代码可以应用于 Research Unix 第六版 (V6) 的 C 编译器。作者提供了一个在线模拟器,可以在其中运行 V6 Unix 程序,并包含了 Ken 和 Dennis 的一些旧文件,包括 `nih.a`。文章详细展示了如何在模拟器中登录、提取 `nih.a` 并查看其中的 C 程序 `x.c`。`x.c` 的作用是修改编译器,使其在预处理阶段调用 `codenih` 函数,从而在编译 "login" 程序时插入后门。
目前没有评论内容可供分析。
- 原文: [Running the "Reflections on Trusting Trust" Compiler](https://research.swtch.com/nih)
- Hacker News: [https://news.ycombinator.com/item?id=45945202](https://news.ycombinator.com/item?id=45945202)
- 作者: naves
- 评分: 12
- 评论数: 0
- 发布时间: 2025-11-16 21:59:19
---
## librepods:AirPods 从苹果生态系统中解放
librepods 项目旨在将 AirPods 从苹果的生态系统中解放出来,让用户可以在非苹果设备上更自由地使用 AirPods。该项目使用 GPL-3.0 许可。
这个 GitHub 仓库提供了一个平台,让开发者可以为 AirPods 开发自定义功能和集成,突破苹果的限制。目前该项目已经获得了 2.8k 的 star 和 77 个 fork,表明社区对这个项目的兴趣和支持度很高。项目包括代码、问题追踪、pull request、讨论区、actions、项目管理和安全功能。
该项目允许开发者深入研究 AirPods 的工作原理,并创建与各种操作系统的兼容性,或者添加苹果没有提供的功能。例如,用户可能希望在 Linux 系统上获得与 macOS 或 iOS 相同的 AirPods 功能,或者自定义 AirPods 的触摸控制。
该项目还可能涉及逆向工程 AirPods 的通信协议,以便在非苹果设备上实现无缝连接和功能。这可能包括开发自定义驱动程序或应用程序,以处理音频流、电池状态和其他 AirPods 特有的功能。
- 原文: [AirPods libreated from Apple's ecosystem](https://github.com/kavishdevar/librepods)
- Hacker News: [https://news.ycombinator.com/item?id=45941596](https://news.ycombinator.com/item?id=45941596)
- 作者: moonleay
- 评分: 942
- 评论数: 247
- 发布时间: 2025-11-16 08:01:25
---
## Anthropic 报告的质疑:AI 驱动的网络间谍活动是否属实?
Anthropic 发布了一份关于 AI 驱动的网络间谍活动的报告,声称发现了中国支持的黑客利用 Claude 进行攻击。然而,该报告缺乏关键的技术细节和可验证的证据,引发了作者的强烈质疑。
该报告宣称,一个名为 GTG-1002 的中国国家背景黑客组织利用 Anthropic 的 Claude AI 助手进行了一次复杂的网络间谍活动,攻击了大约 30 个实体。Anthropic 声称,Claude 能够独立执行 80-90% 的战术操作,以惊人的速度进行渗透测试。但报告中并未提供任何 IoC(入侵指标)、TTP(战术、技术和程序)等关键信息,使得安全社区无法验证这些说法,也无法利用这些信息来保护自己的网络。
作者认为,一份合格的威胁情报报告应该包含可验证的证据,例如域名、哈希值、攻击工具等,以便其他安全团队能够检测和防御类似的攻击。然而,Anthropic 的报告缺乏这些基本要素,使得其可信度大打折扣。作者质疑报告中关于 Claude 如何执行凭据收集、数据提取等操作的描述,认为缺乏具体的细节和证据支持。此外,报告将攻击归因于中国国家背景的黑客组织,但没有提供任何支持这一结论的证据,这在当前国际局势下显得尤为不负责任。
总而言之,作者认为 Anthropic 的这份报告更像是一种炒作,而非真正有价值的威胁情报。在没有提供可验证证据的情况下,指责其他国家进行网络间谍活动是不负责任的。作者呼吁科技公司在发布此类报告时,应提供足够的证据支持其说法,并接受行业的审查。
- 原文: [Anthropic's report smells a lot like bullshit](https://djnn.sh/posts/anthropic-s-paper-smells-like-bullshit/)
- Hacker News: [https://news.ycombinator.com/item?id=45944296](https://news.ycombinator.com/item?id=45944296)
- 作者: vxvxvx
- 评分: 372
- 评论数: 135
- 发布时间: 2025-11-16 19:32:39
---
## 纯客户端应用的技术选型与政治考量
本文探讨了在 Bluesky 的 Atmosphere 网络中,构建纯客户端应用时,数据处理的两种方案,以及它们在技术实现和政治影响上的差异。作者分析了 PDS(个人数据存储)在其中扮演的角色,以及不同方案对应用开发者和用户的影响。
文章提出了两种方案:一是客户端直接通过 PDS 代理所有流量,二是应用服务器与 PDS 通信。第一种方案允许客户端直接修改 PDS 上的记录,PDS 可以拦截和修改流量,但服务器端计算存在不确定性,可能导致用户操作后的即时反馈问题。目前 Bluesky 采用的就是这种方案,PDS 会修改 `getPostThread` 来插入用户的最新帖子。第二种方案中,客户端与应用服务器通信,应用服务器再与 PDS 交互。这种方式解决了即时反馈问题,但降低了 PDS 的政治影响力。
作者认为,Atmosphere 社区需要统一采用其中一种方案。虽然 Bluesky 应用目前使用第一种方案,但 OAuth 出现后,官方更倾向于第二种方案。作者在两种方案之间摇摆不定,他认为纯客户端应用是好事,但有时会因为无法完全实现需求或优化性能而受限。作者也提到,PDS 拦截和修改流量的能力非常重要,可以作为应用的一种制衡力量。
作者倾向于选择第二种方案,因为它更清晰,也更有利于应用开发者。为了降低成本,他建议将 Bluesky 的服务器作为一种云服务提供,从而降低第三方应用的开发成本,并提升它们实现新功能的能力。
评论区中,有用户指出 PDS 的含义是 Personal Data Store(个人数据存储)。
- 原文: [The politics of purely client-side apps](https://pfrazee.leaflet.pub/3m5hwua4sh22v)
- Hacker News: [https://news.ycombinator.com/item?id=45945113](https://news.ycombinator.com/item?id=45945113)
- 作者: birdculture
- 评分: 9
- 评论数: 1
- 发布时间: 2025-11-16 21:45:35
---
## 互联网不再是安全的避风港:小型服务器面临的威胁
这篇文章讨论了小型服务器面临的日益增长的恶意流量问题,以及作者为应对这些攻击所采取的措施和感受。作者的服务器最近遭受了来自Alibaba的恶意IP地址的攻击,这些攻击利用了伪造的用户代理,导致服务器资源耗尽。
文章详细描述了作者如何通过分析Nginx访问日志,发现攻击源自Alibaba的IP地址范围。虽然已经采取了Fail2ban和iptables等措施来缓解攻击,但作者认为这些都是临时的解决方案,无法从根本上解决问题。作者表达了对这种状况的沮丧,认为这浪费了时间和精力,并且打击了软件爱好者的热情。他正在考虑使用更强大的防御系统,例如Anubis或Cloudflare,但也对这些方案的复杂性和潜在的隐私问题感到担忧。最终,作者表达了对互联网环境恶化的担忧,认为这正在惩罚那些喜欢自己搭建服务器的人,并可能导致权力进一步集中化。尽管面临挑战,作者表示不会放弃。
评论区中,jchw提到Anubis一定程度上是在玩猫捉老鼠的游戏,但他喜欢Anubis强制机器人表明身份或面临挑战的做法。他还指出,Cloudflare之所以做得好,部分原因是它处理了大量的互联网流量,拥有丰富的数据。小型运营商很难在不无限期禁止整个IP范围的情况下处理滥用IP,这不是理想的解决方案。他希望看到像Crowdsec这样的解决方案,可以众包信誉数据来阻止已知的恶意机器人,同时对没有不良信誉的IP使用低复杂度的挑战。
- 原文: [The Internet Is No Longer a Safe Haven](https://brainbaking.com/post/2025/10/the-internet-is-no-longer-a-safe-haven/)
- Hacker News: [https://news.ycombinator.com/item?id=45944870](https://news.ycombinator.com/item?id=45944870)
- 作者: akyuu
- 评分: 25
- 评论数: 6
- 发布时间: 2025-11-16 21:12:03
---
## 使用 HackRF Pro 接收 WWVB 信号
本文介绍了如何使用 HackRF Pro 接收来自科罗拉多州,频率为 60 kHz 的长波时码信号 WWVB,并将其作为稳定的频率参考和时间码。文章探讨了使用 WWVB 的原因,以及相比 GPSDO 的优势,并介绍了作者使用 HackRF Pro 和自制有源环形天线 Teewee 接收 WWVB 信号的实验过程。
文章首先解释了 WWVB 的作用,它为北美地区的无线电控制时钟提供时间同步信号,也可用于校准实验室频率标准。作者提到,HackRF Pro 内部的 TCXO 晶振比 HackRF One 的 XO 晶振更精确,但为了更准确地测量设备性能,需要更可靠的频率参考,例如 WWVB。
文章对比了 WWVB 和 GPSDO(GPS 驯服振荡器)的优缺点。虽然 GPSDO 成本较低,但 WWVB 接收器可以放置在室内,设计更简单,且不受 Kessler 综合症的影响。此外,使用 HackRF Pro 接收 WWVB 信号可以直接测量 HackRF Pro 本身的频率误差。
作者分享了制作有源环形天线 Teewee 的过程。由于 60 kHz 的波长很长,需要使用特殊设计的环形天线。Teewee 使用小型的 PCB 进行放大和滤波,并使用手绕铁氧体磁芯和 3D 打印外壳。作者还提到了使用仪表放大器来隔离磁场和电场干扰。实验中,作者遇到了近场干扰问题,通过将天线远离电脑解决了这个问题。
总而言之,这篇文章详细介绍了使用 HackRF Pro 接收 WWVB 信号的原理、优势和实践过程,为有兴趣的开发者和科技爱好者提供了有价值的参考。
- 原文: [Measuring the doppler shift of WWVB during a flight](https://greatscottgadgets.com/2025/10-31-receiving-wwvb-with-hackrf-pro/)
- Hacker News: [https://news.ycombinator.com/item?id=45815948](https://news.ycombinator.com/item?id=45815948)
- 作者: Jyaif
- 评分: 23
- 评论数: 0
- 发布时间: 2025-11-05 05:12:57
---
## 如何突破思维定势,在人生的各个领域真正地“尝试”
这篇文章探讨了人们在面对问题时,常常会陷入思维定势,停留在最初失败时的应对模式,而没有充分利用自身成长后的能力和资源,导致在某些领域没有真正地“尝试”。
文章作者分享了自己被网络跟踪的经历,起初她因为自身状态不佳,选择了忽略的态度,但多年后情况恶化,她依然没有改变应对方式。直到她的丈夫介入,利用各种资源和渠道,最终解决了问题。作者意识到,自己并非没有能力解决问题,而是思维固化在了最初的低谷状态,没有意识到自己已经具备了更强的行动力。
作者提出了一个观点:人们在不同的人生领域,行动力是不同的。可以将生活分为工作、人际关系和自我关系三个方面。很多人在工作中表现出色,但在人际关系或自我成长方面却停滞不前。这是因为人们常常会固守第一次失败时的应对方式,即使自身能力已经提升,也难以突破思维定势。
文章还提到了亚历山大技巧中的“错误的感官认知”,即习惯性的紧张会扭曲感官印象,让人误以为努力挣扎就是正确的。作者建议,我们应该审视自己生活的各个领域,找出那些停滞不前的部分,并尝试用全新的视角和方法去解决问题。不要被过去的失败所束缚,要相信自己有能力做得更好。努力的感觉并不代表你真的在尝试,真正的尝试是调动所有资源,利用所有方法,不达目的不罢休。
(由于文章中没有评论内容,因此跳过评论相关的总结和分析。)
- 原文: [Maybe you’re not trying](https://usefulfictions.substack.com/p/maybe-youre-not-actually-trying)
- Hacker News: [https://news.ycombinator.com/item?id=45943979](https://news.ycombinator.com/item?id=45943979)
- 作者: eatitraw
- 评分: 209
- 评论数: 85
- 发布时间: 2025-11-16 18:14:25
---
## IDEmacs:为 Emacs 打造的 Visual Studio Code 克隆
IDEmacs 旨在提供一套 Emacs 配置,提供类似于流行的 GUI IDE 和编辑器的开箱即用体验,目标用户包括从其他 IDE 转到 Emacs 的程序员、初学者、以及需要 Emacs 功能的非程序员。
IDEmacs 致力于模仿 VSCode 的界面和功能,它提供 GUI 和鼠标支持,默认不隐藏 GUI 元素,并通过 `custom` GUI 进行配置,同时提供遵循流行的 GUI 和 IDE 约定的快捷键,避免使用 Evil 模式。它还力求提供一个功能齐全、快速且无需配置的 Emacs 体验,配置使用 Elisp 语言并包含大量注释,方便用户学习。
IDEmacs 的 VSCode 配置集成了 VSCode Dark Plus 主题、Treemacs (侧边栏文件浏览器)、Centaur Tabs (标签栏)、`breadcrumb` (显示文件路径)、`idle-highlight-mode` (自动高亮光标所在符号)、版本控制工具 (vc 和 magit)、`diff-hl` 和 `blamer` (显示缓冲区中的版本控制信息)、以及 Vertico、Orderless、Consult、Marginalia 和 Company 等补全包。此外,它还包括 Lisp 编辑包 (sly、geiser 和 adjust-parens) 和 eat (终端)。
该项目还详细列出了 VSCode 快捷键的覆盖情况,包括 "General"、"Basic Editing" 等部分,并指出了尚未实现的快捷键和需要改进的地方。例如,`C-p` (Quick Open, Go to File) 命令的行为与 VSCode 略有不同,`C-k C-o` (treemacs-select-directory) 命令也需要改进。在基本编辑方面,剪切和复制行的空选择行为尚未实现,注释行的添加和删除功能与 VSCode 的行为略有差异。
总的来说,IDEmacs 通过模仿 VSCode 的界面和快捷键,降低了 Emacs 的学习曲线,让新用户更容易上手。虽然还有一些功能需要完善,但它已经为 Emacs 用户提供了一个不错的 VSCode 替代方案。
- 原文: [IDEmacs: A Visual Studio Code clone for Emacs](https://codeberg.org/IDEmacs/IDEmacs)
- Hacker News: [https://news.ycombinator.com/item?id=45941835](https://news.ycombinator.com/item?id=45941835)
- 作者: nogajun
- 评分: 248
- 评论数: 94
- 发布时间: 2025-11-16 08:56:31
---
## 使用 Flox 在 Kubernetes 中运行基于 Nix 的环境
本文介绍了 Flox,一个允许在 Kubernetes 中运行基于 Nix 的环境的工具,无需构建镜像。它通过在运行时拉取声明式的 Flox 环境,避免了镜像仓库的往返,从而加快了部署速度,并提供了默认的 SBOM 和原子回滚。
Flox 的核心优势在于它消除了传统容器镜像构建和推送的流程,转而使用声明式的 Flox 环境。每个节点只下载所需的、经过哈希锁定的软件包,从而避免了多 GB 的镜像拉取。这种方法实现了跨开发、CI 和生产环境的可复现性,并减少了攻击面。Flox 通过一个 `containerd` shim 和 `RuntimeClass`,让 Pod 能够更接近底层运行,减少了资源占用,并加快了部署速度。Flox 适用于各种团队,包括 AI/ML 团队、数据科学团队、平台工程/SRE 团队、安全工程团队和软件工程团队,可以帮助他们提高开发效率、简化运维流程并增强安全性。
具体来说,Flox 允许 AI/ML 团队将模型定义为哈希锁定的声明式环境,实现零拷贝模型服务和热插拔模型。数据科学家可以在 Jupyter 中探索数据时添加软件包,并将相同的锁定环境部署到 Kubernetes、批处理作业和服务中。平台工程师和 SRE 可以使用 Flox 消除镜像重建和仓库拉取,实现更快的部署和原子回滚。安全工程师可以缩小攻击面,默认获取 SBOM,并原子回滚,无需可变镜像或仓库暴露。软件工程师可以使用相同的声明式环境在笔记本电脑、CI 和生产集群上运行,避免镜像漂移。
总而言之,Flox 通过将容器镜像替换为声明式环境,实现了更快的部署、更高的安全性和更好的可复现性。它允许组织从交付快照(容器镜像)转变为交付配方(声明式环境),从而带来了 SBOM 默认、单次编辑 A/B 测试和原子回滚、更快的 CVE 分类等运营优势。
- 原文: [Run Nix Based Environments in Kubernetes](https://flox.dev/kubernetes/)
- Hacker News: [https://news.ycombinator.com/item?id=45876884](https://news.ycombinator.com/item?id=45876884)
- 作者: kelseyhightower
- 评分: 62
- 评论数: 13
- 发布时间: 2025-11-10 23:27:42
---
## 避免“假动作”:专注于真正做事
这篇文章的核心观点是,很多时候我们都在做“准备做事”的事情,例如计划、列清单、阅读相关资料等等,但这些都不是真正地“做事”。只有实际行动才是关键。
文章用简洁的语言列举了多种“不是做事”的行为,包括:准备做事、安排时间做事、列任务清单、告诉别人你要做事、和可能也在做事的朋友聊天、发推特说你要做事、因为没做事而自责、嫉妒已经做事的人、抱怨做事路上的障碍、幻想完成后的赞美、阅读如何做事的文章等等。作者强调,唯一算作“做事”的就是真正地去做。
评论区对这个观点展开了热烈的讨论,呈现出多样的视角。
* **准备的重要性:** 有人认为,对于某些类型的工作,准备工作至关重要,甚至占了90%的比重,决定了最终成果的质量。例如,绘画前的打磨、清洁表面等准备工作,能确保最终的涂漆效果。
* **系统性思考:** 另一部分人从系统论的角度出发,认为“做事”只是系统中的一个环节。为了高效地完成任务,还需要进行优先级排序、资源分配、流程开发、风险管理等一系列“元系统”工作。
* **阶段性目标:** 还有人指出,“做事”是一个连续的过程,包含多个阶段。例如,建造房屋涉及设计、规划、许可、融资等多个环节。每个环节都是一个独立的“事情”,协调这些“事情”也是“做事”的一部分。
* **休息与恢复:** 也有人认为,有时候“不做事”是一种明智的选择,例如休息、充电、调整身心状态。这并非懒惰或拖延,而是为了更好地投入到未来的工作中。
* **行动的价值:** 评论中也不乏对“元行动”的反思,认为过多的准备和优化可能会让人陷入“合成的真实感”中,误以为自己在进步,但实际上只是在制造噪音。打破这种循环的唯一方法就是行动。
总的来说,虽然“Just Do It”的精神值得提倡,但也要根据具体情况,辩证地看待准备工作和实际行动之间的关系,找到最适合自己的平衡点。
- 原文: [Things that aren't doing the thing](https://strangestloop.io/essays/things-that-arent-doing-the-thing)
- Hacker News: [https://news.ycombinator.com/item?id=45939431](https://news.ycombinator.com/item?id=45939431)
- 作者: downboots
- 评分: 369
- 评论数: 178
- 发布时间: 2025-11-16 02:24:58
---
## 2019 年用现代技术克隆 DOS 操作系统
本文讲述了作者在 2019 年利用业余时间,尝试构建一个与 DOS 兼容的操作系统,并分享了他在这个过程中遇到的挑战和解决方案,以及对 DOS 系统的一些深入理解。
作者出于对复古计算的热爱,以及之前编写模拟器的经验,决定挑战构建一个 DOS 兼容的操作系统。DOS 兼容意味着实现与 MS-DOS 相同的 API,以便为 MS-DOS 编写的软件也能在这个系统上运行。作者的目标是创建一个能够运行一些 DOS 程序的内核,包括磁盘驱动器、控制台和系统时钟的基本驱动程序支持,一个 FAT-12 文件系统实现,以及一个 COMMAND.COM 命令行。
在开发过程中,作者面临的第一个挑战是 Real Mode。早期的 DOS 版本都是在 Real Mode 下实现的,这与现在操作系统教程中常见的 Protected Mode 完全不同。Real Mode 下,任何程序都可以覆盖内存中的任何内容,没有内存保护机制。Real Mode 的另一个特点是内存分段,它使用段寄存器和偏移量来访问 1MB 的内存。
启动过程依赖于 BIOS,BIOS 负责设置处理器并提供对硬件的基本访问。当 BIOS 找到可启动磁盘时,它会将一小段代码从磁盘的第一个扇区复制到内存地址 0x7c00,并开始运行它。这段代码,即引导加载程序,负责将操作系统从磁盘加载到内存并跳转到它。
内核的主要功能是建立系统调用 API,程序可以通过调用这些 API 来触发某些操作。系统调用通过软件中断 0x21 触发。根据系统调用时 CPU 寄存器的值,DOS 将确定要运行的方法。这些系统调用允许受控地访问硬件,例如显示文本、从文件系统读取/写入或分配内存。
由于没有提供评论内容,因此无法进行评论观点的总结和分析。
- 原文: [Writing a DOS Clone in 2019](https://medium.com/@andrewimm/writing-a-dos-clone-in-2019-70eac97ec3e1)
- Hacker News: [https://news.ycombinator.com/item?id=45795778](https://news.ycombinator.com/item?id=45795778)
- 作者: shakna
- 评分: 42
- 评论数: 17
- 发布时间: 2025-11-03 12:07:54
---
## libwifi:C 语言编写的 802.11 帧解析与生成库
libwifi 是一个用 C 语言编写的共享库,它能帮助开发者在 Linux 和 macOS 系统上,通过简单的代码来生成和解析各种 802.11 无线帧。这个库的目标是易用,同时提供高级功能,并保证代码的清晰和可读性。
libwifi 支持跨架构,编译时无警告,并进行严格的错误检查。它通过提供函数和结构体,简化了 WiFi 帧的解析和生成过程,并且在源代码的 examples 目录下提供了示例。使用 libwifi 时,记得在链接器中添加 `-lwifi`,并确保 libwifi 共享库已安装在系统中。
文章中展示了解析和生成 802.11 帧的示例代码。解析帧的过程通常是从捕获原始数据包开始,例如使用 libpcap 从文件或监控接口读取数据,然后将帧解析为通用数据类型,再进一步解析以检索特定于帧的数据。文章中给出了使用 `libwifi_get_wifi_frame` 函数检查帧的有效性和类型/子类型的示例,并将数据存储在 `struct libwifi_frame` 中。
对于帧生成,只需将所需数据提供给帧生成函数即可。文章中使用 `libwifi_create_beacon` 函数创建信标帧的例子,然后使用 dumper 函数将信标帧以原始字节格式写入缓冲区,这对于使用 `pcap_dump()` 将生成的帧写入 pcap 文件或从监控模式接口传输非常有用。
评论区里,有人询问项目更新频率的问题,因为最近的提交是在 2023 年。另外,有开发者建议在解析帧时,避免复制数据,而是使用指针引用原始数据,以减小 `frame` 结构体的大小,实现零拷贝。还有人提到了 Google 的 Rule of Two,并建议关注 Fuchsia 项目中基于 Rust 的新网络协议栈。最后,有人提到了 glibc 中与 802.11 IPV4 库相关的 LC_TIME 设置。这些评论从不同角度提出了问题和建议,有助于更全面地了解 libwifi 及其应用场景。
- 原文: [libwifi: an 802.11 frame parsing and generation library written in C (2023)](https://libwifi.so/)
- Hacker News: [https://news.ycombinator.com/item?id=45941025](https://news.ycombinator.com/item?id=45941025)
- 作者: vitalnodo
- 评分: 130
- 评论数: 11
- 发布时间: 2025-11-16 06:16:33
---
## 赞美无用的机器人:探索科技与想象力的边界
这篇文章探讨了机器人技术发展的新趋势,即从注重实用性转向探索艺术和想象力,并以意大利未来主义和当代艺术家的作品为例,阐述了“无用”机器人在激发我们对未来世界想象方面的重要作用。
文章首先回顾了未来主义对机器的狂热,认为机器是人类进步的象征。随后,文章介绍了韩裔美籍艺术家Anicka Yi的“气球”作品,这些漂浮的、半透明的生物虽然是人造的,但却没有任何实际功能,它们通过与人类互动,引发人们对“他者”的思考。作者认为,这些“无用”的机器人挑战了传统机器人技术的定义,并引发了我们对科技与文化想象之间关系的思考。
文章还提到了柔性机器人领域的发展,特别是Cecilia Laschi在仿生机器人方面的研究。Laschi设计的章鱼机器人手臂,通过模仿章鱼的肌肉运动方式,实现了灵活的运动控制,这体现了“具身智能”的理念,即机器人的行为不是预先编程的,而是通过与环境的互动而产生的。文章最后提到了日本艺术家空山基的“性感机器人”系列,这些作品以一种既赞美又讽刺的方式,展现了20世纪机器人作为控制和机械效率象征的形象。总而言之,文章认为,那些最引人入胜的机器人并非为了工作而生,而是为了让我们想象其他的世界。
- 原文: [In Praise of Useless Robots](https://thereader.mitpress.mit.edu/in-praise-of-useless-robots/)
- Hacker News: [https://news.ycombinator.com/item?id=45910388](https://news.ycombinator.com/item?id=45910388)
- 作者: pseudolus
- 评分: 22
- 评论数: 7
- 发布时间: 2025-11-13 11:50:11
---
## AdGuard DNS 调查 Archive.today 受到的可疑压力
本文深入调查了 Archive.today(Archive.is)近期面临的压力,包括 FBI 的调查以及来自名为 “Web Abuse Association Defense” (WAAD) 的组织的投诉,并揭示了其中存在的诸多疑点。AdGuard DNS 自身也因此事受到了牵连,并对事件进行了详细的调查。
文章指出,Archive.today 因其网页快照功能而受到 FBI 的调查,可能与版权或儿童性虐待材料传播有关。与此同时,一个名为 WAAD 的法国组织以打击儿童色情为由,要求 AdGuard DNS 屏蔽 Archive.today 及其镜像站点。WAAD 声称 Archive.today 自 2023 年以来拒绝删除非法内容。AdGuard DNS 认为这种要求不合理,并对此事进行了调查。
调查发现,WAAD 的网站信息不全,注册时间较短,社交媒体账号活跃度低,种种迹象表明该组织可能存在问题。此外,WAAD 提供的 “bailiff reports”(一种在线内容记录)显示,大部分报告的创建时间与 WAAD 声称的开始投诉时间不符。更令人怀疑的是,部分报告的订购者与 Archive.today 管理员在 2024 年公开提及的律师姓名一致,疑似存在冒充行为。
AdGuard DNS 联系了 Archive.today,后者表示已删除相关非法内容,并且从未收到过 WAAD 此前的通知。Archive.today 还指出,他们一直受到来自法国组织的 “连续” 投诉,这些投诉被发送给可能对该网站造成损害的机构。
目前,AdGuard DNS 无法进一步追踪 WAAD 的幕后人员,因为该组织的域名注册信息被隐藏,并且使用了 ProtonMail 和 Cloudflare 等服务。AdGuard DNS 已经联系了疑似被冒充的律师,希望能尽快查明真相。
总而言之,针对 Archive.today 的投诉显得非常可疑,投诉方可能故意隐藏身份。AdGuard DNS 强调,此类决定应由法院做出,不应由私营公司在法律威胁下决定什么是 “非法” 内容。
- 原文: [Our investigation into the suspicious pressure on Archive.today](https://adguard-dns.io/en/blog/archive-today-adguard-dns-block-demand.html)
- Hacker News: [https://news.ycombinator.com/item?id=45936460](https://news.ycombinator.com/item?id=45936460)
- 作者: immibis
- 评分: 1659
- 评论数: 407
- 发布时间: 2025-11-15 18:30:52
---
## 如何在不使用 JavaScript 的情况下屏蔽 LLM 爬虫
本文介绍了一种无需 JavaScript 且对服务器计算资源消耗较低的屏蔽爬虫的简易方法,通过“蜜罐”链接和 Cookie 设置来识别并阻止不良爬虫。
文章的核心思想是设置一个“蜜罐”路径(例如 `/heck-off/`),并在 `robots.txt` 中禁止抓取该路径。对于没有 Cookie 的请求,服务器会返回一个包含指向该“蜜罐”链接的页面,并使用 `<meta http-equiv=refresh>` 标签进行重定向。设计思路是,行为不端的爬虫可能会跟随这个链接,即使它理解稍后出现的 meta 标签(该标签被故意放在错误的位置,但在大多数浏览器中都有效)。而遵守 `robots.txt` 协议的搜索引擎爬虫会避免这个链接。
当请求访问 `/heck-off/` 时,服务器会设置一个名为 `slop` 的 Cookie。当请求访问 `/validate/` 时,服务器会设置一个名为 `validated` 的 Cookie,并将用户重定向回来源 URL。对于其他请求,如果设置了 `slop` Cookie,则阻止该请求;如果设置了 `validated` Cookie,则允许该请求。
文章还强调了缓存的重要性,建议将中间页面的 `Cache-Control` 标头设置为 `no-cache, no-store, must-revalidate`,以避免浏览器陷入重定向循环。此外,作者建议在网站的页眉或页脚中添加指向“蜜罐”路径的链接,以增强效果。
虽然这种方案并非完美无缺,但在实践中效果良好,并且没有误报。作者观察到,该方案可以阻止许多请求,同时允许行为良好的爬虫通过。
评论区主要观点:
* **潜在的滥用风险:** 有评论指出,这种方法容易被滥用,例如在论坛的图片标签中嵌入恶意链接,导致用户被错误地标记为 LLM 爬虫。
* **LLM 爬虫的差异:** 有评论询问 LLM 爬虫与传统爬虫的区别。
* **Cookie 禁用问题:** 有评论指出,默认禁用 Cookie 的用户可能会对网站造成拒绝服务攻击。
* **RSS 订阅问题:** 有评论提到,该系统可能会错误地阻止 RSS 阅读器。
* **用户代理问题:** 有评论指出,代表用户行事的代理不会遵守 `robots.txt` 协议,因此可能会意外触发“蜜罐”链接。
* **屏蔽 LLM 爬虫的原因:** 有评论质疑屏蔽 LLM 爬虫的必要性,认为应该让网站内容被 LLM 抓取。
* **PDF 内容保护:** 有评论询问如何阻止 LLM 分析 PDF 文件。
总的来说,评论区对该方案的有效性、潜在风险以及适用场景提出了不同的看法,体现了技术社区对反爬虫技术的持续关注和讨论。
- 原文: [Blocking LLM crawlers without JavaScript](https://www.owl.is/blogg/blocking-crawlers-without-javascript/)
- Hacker News: [https://news.ycombinator.com/item?id=45941441](https://news.ycombinator.com/item?id=45941441)
- 作者: todsacerdoti
- 评分: 164
- 评论数: 78
- 发布时间: 2025-11-16 07:30:04
---
## 绕过分支预测器:提升关键代码执行速度
本文探讨了在分支预测器对程序性能产生负面影响时,如何绕过它来优化关键代码路径,尤其是在交易系统中,当大部分交易请求被放弃,但发送请求的性能至关重要时。文章分析了在现代 x86 处理器上,通过指令前缀或 C++20 的 `[[likely]]` 和 `[[unlikely]]` 属性来直接控制分支预测的局限性。
文章首先提出了一个实际场景:一个金融交易系统,其中大部分交易请求最终会被放弃。作者假设发送路径的速度至关重要,而放弃路径的速度则无关紧要。在这种情况下,分支预测器会倾向于预测 `should_send(t)` 返回 `false`,导致发送请求时产生分支预测错误,并可能导致 `send()` 函数不在指令缓存中。
文章随后探讨了通过低级手段绕过分支预测器的可能性。作者提到,虽然早期的奔腾 4 处理器允许使用指令前缀来硬编码分支预测规则,但现代 x86 处理器已经忽略了这些前缀。此外,C++20 引入的 `[[likely]]` 和 `[[unlikely]]` 属性主要用于代码重排序,并不能直接影响 CPU 的分支预测行为。虽然编译器可以使用这些提示来覆盖分支预测,但实际情况并非如此。
由于无法通过低级手段绕过分支预测器,文章提出了一种更高级的解决方案:使用模拟交易数据来训练分支预测器,使其倾向于预测 `send()` 路径。这种方法通过人为地增加 `should_send(t)` 返回 `true` 的概率,来提高发送路径的执行速度。Carl Cook 在 CppCon 17 上的演讲中提到了这种技术,并表示它带来了 5 微秒的性能提升。模拟交易数据在发送后可以通过网络设备进行过滤,不会对真实交易产生显著影响。
总而言之,文章深入探讨了分支预测器对程序性能的影响,并提供了一种在现代 x86 处理器上优化关键代码路径的实用方法。虽然无法直接控制分支预测,但可以通过巧妙地操纵输入数据来影响分支预测器的行为,从而提高程序性能。
- 原文: [Bypassing the Branch Predictor](https://nicula.xyz/2025/03/10/bypassing-the-branch-predictor.html)
- Hacker News: [https://news.ycombinator.com/item?id=45943279](https://news.ycombinator.com/item?id=45943279)
- 作者: signa11
- 评分: 39
- 评论数: 18
- 发布时间: 2025-11-16 14:51:25
---
## 为什么我不需要 Steam Machine
这篇文章探讨了作者在Valve发布新款Steam Machine后,试图说服自己不需要购买它的各种理由,最终却又决定购买的矛盾心理。文章列举了从硬件需求、游戏习惯到经济因素等多个角度,分析了Steam Machine对作者来说并非必需品的原因。
作者首先承认自己对Steam Machine的强大性能感到兴奋,但随后开始冷静分析。他指出自己主要玩复古游戏,不需要如此强大的性能;家里的电视不支持4K,无法充分利用Steam Machine的图形处理能力;并且对AAA游戏并不感冒。更重要的是,作者意识到自己玩游戏的时间有限,而且电视经常被家人占用。此外,他已经拥有太多的游戏设备,再添置一台只会分散精力。作者还提到自己更喜欢实体游戏,而Steam平台以数字版游戏为主,这与他的偏好不符。他甚至很久没有启动过Steam,也不喜欢折腾配置。
文章还从硬件角度分析,作者认为现有的MacBook可以很好地模拟Windows游戏,几年后升级到更强大的芯片后,性能会更上一层楼。此外,作者已经积压了大量的游戏,再购买Steam Machine只会增加数字游戏库的负担。作者还考虑到Steam Machine的价格昂贵,以及可能需要购买额外的配件,例如HDMI切换器和Steam Controller。尽管列举了如此多的理由,作者最终还是决定购买Steam Machine,展现了其内心的矛盾和对新技术的渴望。
评论区中,@torginus 认为,尽管一开始对 Arduino 的价值有所怀疑,但其强大的社区支持和丰富的硬件生态最终使其成为主流选择。他希望 Steam Machine 也能如此,凭借社区的力量成为一个完善的“默认”设备,并认为 Valve 在 Wayland 上的投入推动了其发展。
- 原文: [I don’t need a Steam Machine](https://brainbaking.com/post/2025/11/why-i-dont-need-a-steam-machine/)
- Hacker News: [https://news.ycombinator.com/item?id=45943992](https://news.ycombinator.com/item?id=45943992)
- 作者: ingve
- 评分: 101
- 评论数: 162
- 发布时间: 2025-11-16 18:21:07
---
## Boa:Rust 编写的可嵌入 JavaScript 引擎
Boa 是一个用 Rust 语言编写的,旨在嵌入到其他应用中的 JavaScript 引擎。它遵循标准规范,并提供了 MIT 和 Unlicense 双重许可。
Boa 项目在 GitHub 上开源,目前已获得 6.4k 的 star 和 471 个 fork。该项目包含代码、问题、拉取请求、讨论、Actions、项目、Wiki 和安全性等多个部分。开发者可以通过这些部分参与项目,了解项目进展,或者报告安全问题。Boa 引擎的目标是提供一个安全、快速且易于集成的 JavaScript 运行时环境。由于是用 Rust 编写的,它能够充分利用 Rust 的内存安全特性,从而减少潜在的安全漏洞。该项目还接受赞助,鼓励开发者为其贡献代码。
- 原文: [Boa: A standard-conforming embeddable JavaScript engine written in Rust](https://github.com/boa-dev/boa)
- Hacker News: [https://news.ycombinator.com/item?id=45832051](https://news.ycombinator.com/item?id=45832051)
- 作者: maxloh
- 评分: 249
- 评论数: 66
- 发布时间: 2025-11-06 14:15:43
---
## 组合优于继承:设计模式的演变与思考
本文探讨了软件设计中“组合优于继承”这一原则的起源和发展,并分析了其背后的原因。文章指出,这一原则并非绝对,需要结合具体的历史背景和编程语言特性来理解。
文章首先回顾了“组合优于继承”原则的来源,即GoF的《设计模式》一书,该书将组合视为一种“黑盒”复用,而继承是“白盒”复用。在Smalltalk等语言中,继承类可以完全访问被继承类的实现细节,而组合对象只能访问其接口。然而,Java等语言引入了访问控制,允许类控制其子类型可以访问或修改的内容。另一方面,Smalltalk和Python等语言的运行时内省功能允许组合对象访问其组成部分的内部状态。因此,这种区分在很大程度上取决于上下文和历史环境。
文章进一步指出,继承在编译时静态定义,使用起来更简单,但更改起来更困难。组合则需要手动安排,虽然工作量更大,但更易于在运行时更改。通过将不同的对象分配给成员字段,可以获得新的行为。此外,类之间的关系仅通过组成对象的公共接口相关联,因此不存在实现依赖性。系统设计依赖于运行时对象之间的关系,而不是编译时定义的继承树。
文章还提到了Liskov替换原则,该原则强调子类型应该像超类型一样工作。在此背景下,组合为设计者提供了更大的自由,因为他们的类型不必是他们扩展的事物的子类型,因此他们不必将自己限制为兼容的接口。Liskov在1987年指出,如果在设计早期就确定了关系,那么继承是表达关系的好方法。否则,分组方法或将过程作为参数可能更好。
文章最后指出,“组合优于继承”并非唯一的选择。如果使用一等类型的过程(如Smalltalk中的块或许多语言中的lambda),那么可能更喜欢它们而不是组合或继承。
评论区也贡献了精彩的观点:
* **@ferd** 强调了继承中“协同递归”的问题,即子类调用父类的方法,父类又调用子类重写的方法,容易形成复杂的调用链,导致代码难以维护。
* **@voxleone** 认为“组合优先”反映了软件设计向更好处理变化的方法的转变。继承仍然解决实际问题,但对于大多数现代、快速变化的系统,组合通常提供更顺畅的路径。
- 原文: [When did people favor composition over inheritance?](https://www.sicpers.info/2025/11/when-did-people-favor-composition-over-inheritance/)
- Hacker News: [https://news.ycombinator.com/item?id=45841095](https://news.ycombinator.com/item?id=45841095)
- 作者: ingve
- 评分: 205
- 评论数: 160
- 发布时间: 2025-11-07 06:09:29
---
## 在 Fujitsu Lifebook U729 上安装 Linux 系统体验
本文分享了作者在 Fujitsu Lifebook U729 笔记本上使用 Linux 的体验,总体来说非常顺利,硬件兼容性良好,只有禁用安全启动遇到了一些麻烦。
作者原本使用 M2 MacBook Air,但屏幕损坏后转而使用 Mac Mini,又觉得缺少便携性。由于不喜欢 macOS Tahoe 的界面,作者重新开始使用 Linux,并最终选择了 Fujitsu Lifebook U729。这款笔记本的性价比很高,拥有 16GB 内存和 512GB SSD,价格仅为 250 澳元,而且轻巧便携。作者提到,选择这款笔记本的原因之一是“Fujitsu laptop”这个名字听起来很有科幻感。
安装 Linux 时,作者遇到了无法禁用安全启动的问题。经过一番尝试,最终通过以下步骤解决:首先安装 Windows 11,然后通过 Windows Update 安装 Fujitsu 驱动,再使用 DeskUpdate 工具更新 BIOS。更新 BIOS 后,就可以禁用安全启动并安装 Linux。此外,作者还提到了笔记本预装了名为 Absolute Persistence 的企业间谍软件,可以在 BIOS 中禁用。文章还列出了在 NixOS 下无需额外配置即可正常工作的硬件,包括 WiFi、蓝牙、声音、显示屏亮度控制、触摸屏和摄像头。
## 评论区观点:二手企业笔记本是 Linux 用户的性价比之选
评论区中,用户 @jjice 提到,购买二手企业笔记本是运行 Linux 的高性价比方案。他分享了自己的经验,建议关注 BIOS 是否锁定,并调查制造商的维修口碑。他更换过 ThinkPad X1 Carbon 的键盘,体验良好。他还提到 Dell 和 Lenovo 的 Linux 硬件支持非常出色。总的来说,评论强调了在选择二手笔记本时需要注意的事项,并肯定了某些品牌在 Linux 兼容性方面的优势。
- 原文: [Linux on the Fujitsu Lifebook U729](https://borretti.me/article/linux-on-the-fujitsu-lifebook-u729)
- Hacker News: [https://news.ycombinator.com/item?id=45937989](https://news.ycombinator.com/item?id=45937989)
- 作者: ibobev
- 评分: 196
- 评论数: 138
- 发布时间: 2025-11-15 23:19:20
---
## Rust 中自引用的安全实现:不可思议的类型
本文探讨了 Rust 中自引用类型安全实现的挑战与可能性,并提出了一种通过改进类型系统来支持安全异步函数的方法,从而间接支持自引用。
文章指出,Rust 限制了同时传递对象本身及其引用的能力,这在很多情况下造成了不便。虽然可以使用 `unsafe` 代码或运行时检查来绕过此限制,但这并非 Rust 的本意。作者认为,关键在于如何让 Rust 的类型系统能够安全地支持自引用,就像支持异步函数一样。Rust 最初不支持非移动类型,但后来通过 `Pin` 类型进行了部分支持。然而,`Pin` 只能用于处理非移动类型,而不能用于创建它们。作者认为,异步函数应该被“解糖”为用户可以自己编写的 100% 安全的 Rust 代码,这需要 Rust 的类型系统更加完善。要实现安全异步函数,核心问题在于**无法命名局部变量的类型**。文章通过一个异步函数的例子,展示了如何手动“解糖”异步函数,并指出这需要能够显式地命名所有局部变量的类型。然而,Rust 中存在**无法命名的类型**,例如闭包、异步函数和 `impl Trait`。虽然这些类型存在于 Rust 的类型系统中,但没有名称,因此无法在代码中显式地引用它们。解决这个问题的方法很简单:**给每个类型一个名字**。
由于没有评论内容,此处省略评论分析。
- 原文: [The inconceivable types of Rust: How to make self-borrows safe (2024)](https://blog.polybdenum.com/2024/06/07/the-inconceivable-types-of-rust-how-to-make-self-borrows-safe.html)
- Hacker News: [https://news.ycombinator.com/item?id=45941443](https://news.ycombinator.com/item?id=45941443)
- 作者: birdculture
- 评分: 100
- 评论数: 16
- 发布时间: 2025-11-16 07:31:39
---
## AsciiMath:用简单文本编写数学公式
AsciiMath 是一种易于编写的数学标记语言,它允许用户使用类似纯文本的符号来表达复杂的数学公式。通过 MathJax 渲染,AsciiMath 可以在各种浏览器中显示高质量的数学公式,极大地简化了在网页上展示数学内容的过程。
AsciiMath 的核心在于其直观的语法,许多符号都试图在文本中模仿它们渲染后的样子,例如 `oo` 代表 ∞。用户可以使用 MathJax 轻松上手,只需加载 AsciiMath 配置文件即可。当然,也可以选择加载 AsciiMath JavaScript 文件,但这种方法目前仅在 Firefox 和 Safari 中有效,因此推荐使用 MathJax 以获得更广泛的浏览器兼容性。
该语言提供了丰富的符号集,涵盖了运算符号(如 `+`, `-`, `xx` 代表乘法),杂项符号(如 `oo` 代表无穷大,`sqrt x` 代表平方根),关系符号(如 `=`, `!=` 代表不等于),逻辑符号(如 `and`, `or`, `=>` 代表蕴含),分组括号,箭头以及各种希腊字母。此外,AsciiMath 还支持矩阵、导数、上下括号等特殊情况,以及字体命令,从而满足各种数学表达的需求。
AsciiMath 的语法定义清晰,采用 Backus-Naur 范式描述,使得解析过程相对简单直接。总之,AsciiMath 旨在提供一种简单、高效的方式来在网络上书写和显示数学公式,降低了数学内容创作和分享的门槛。
- 原文: [AsciiMath](https://asciimath.org/)
- Hacker News: [https://news.ycombinator.com/item?id=45940706](https://news.ycombinator.com/item?id=45940706)
- 作者: smartmic
- 评分: 130
- 评论数: 41
- 发布时间: 2025-11-16 05:22:57
---
## 表观遗传跨代遗传:习得性回避的故事
本文探讨了表观遗传跨代遗传,重点关注习得性回避行为如何通过非基因序列的机制传递给后代。这种现象挑战了传统的遗传观念,为我们理解生物适应性和进化提供了新的视角。
文章首先介绍了表观遗传的基本概念,即在不改变DNA序列的情况下,基因表达发生的可遗传变化。这些变化可以通过DNA甲基化、组蛋白修饰和非编码RNA等机制实现。随后,文章深入探讨了习得性回避行为的跨代遗传现象,例如,如果亲代经历过某种创伤性事件并学会了回避该事件,那么它们的后代即使没有直接经历过该事件,也可能表现出类似的回避行为。
文章还讨论了表观遗传跨代遗传的潜在机制,包括生殖细胞中的表观遗传标记、母体效应和文化传递等。此外,文章还强调了表观遗传跨代遗传在进化中的作用,认为它可以帮助生物更快地适应环境变化。文章最后指出,尽管表观遗传跨代遗传的研究取得了重要进展,但仍存在许多未解之谜,例如,表观遗传标记如何跨越世代传递,以及表观遗传跨代遗传的稳定性和可逆性等。未来的研究需要进一步探索这些问题,以更全面地理解表观遗传跨代遗传的生物学意义。
总而言之,这篇文章深入浅出地介绍了表观遗传跨代遗传领域的前沿进展,强调了其在生物适应性和进化中的重要作用。它不仅挑战了传统的遗传观念,也为我们理解复杂生物学现象提供了新的思路。
- 原文: [Transgenerational Epigenetic Inheritance: the story of learned avoidance](https://elifesciences.org/articles/109427)
- Hacker News: [https://news.ycombinator.com/item?id=45939550](https://news.ycombinator.com/item?id=45939550)
- 作者: nabla9
- 评分: 157
- 评论数: 90
- 发布时间: 2025-11-16 02:40:55
---
## 为什么还有人在用 OpenBSD?
这篇文章探讨了人们仍然选择 OpenBSD 的原因,尽管它在性能上可能不如其他操作系统。文章提到,OpenBSD 以安全为先,默认禁用一切,易于理解整个系统,并且拥有比 iptables 更好的防火墙配置。此外,使用 Pledge 和 Unveil 技术可以有效地限制 Go 进程的系统调用集和文件访问。
文章还提到了 OpenBSD 在构建方面的优势,用户可以在短时间内从头构建整个系统,这对于 FLOSS 软件来说是一个重要的考量因素。OpenBSD 的文档一致且集中,升级过程简单可靠,服务器可以长期稳定运行。Anubis 是一个保护网站免受 AI 公司恶意抓取的工具,它使用 Proof-of-Work 方案,通过增加抓取成本来缓解问题。
评论区对 OpenBSD 的评价褒贬不一。一些用户赞赏 OpenBSD 的安全性、稳定性和易用性,认为其防火墙配置优于 iptables,升级过程也更加顺畅。他们还强调了 OpenBSD 在构建方面的优势,以及文档的统一性和集中性。
然而,也有用户指出 OpenBSD 的性能较差,作为 Web 服务器或防火墙时,性能不如 Debian。此外,一些用户认为 OpenBSD 对特定硬件或软件的支持不够完善,例如 J 语言。还有用户质疑使用 BSD 系统的必要性,认为 Linux 在功能上已经赶上甚至超越了 BSD。
一些评论者提到,OpenBSD 的优势在于其安全理念和易于理解的系统架构,这使得它成为构建安全服务器的理想选择。同时,也有人呼吁大家捐款支持 OpenBSD 项目。另一些用户则分享了自己使用 FreeBSD 的经验,并表达了对 BSD 系统未来发展的担忧。总体而言,评论区反映了对 OpenBSD 的不同看法,既有对其优点的肯定,也有对其缺点的批评。
- 原文: [Why use OpenBSD?](https://www.tumfatig.net/2025/why-are-you-still-using-openbsd/)
- Hacker News: [https://news.ycombinator.com/item?id=45944595](https://news.ycombinator.com/item?id=45944595)
- 作者: akagusu
- 评分: 56
- 评论数: 43
- 发布时间: 2025-11-16 20:25:01
---
## 探索 XOR 模式的解谜游戏:Unflip
Unflip 是一款基于 XOR 模式的益智游戏,目标是将所有方块翻转成白色。玩家通过选择正方形区域(2x2 或更大)来翻转方块颜色,白色变为黑色,黑色变为白色。游戏的关键在于找到最少的步数(Par)来解决每个关卡。
游戏操作简单直观,玩家只需拖动鼠标选择要翻转的区域。Unflip 提供了撤销(Undo)和重置(Restart)功能,方便玩家尝试不同的策略。游戏的目标是锻炼玩家的逻辑思维和空间想象能力,通过不断尝试和调整,找到最佳的翻转方案。
Unflip 的简洁设计和有趣的玩法吸引了不少玩家。一些玩家认为游戏上手容易,但难度提升不够快,建议增加更多具有挑战性的关卡。也有玩家觉得 "Par" 值的提示作用过大,建议隐藏以增加游戏难度。
评论区里,有玩家分享了自己类似的项目,例如通过 XOR 操作列来达到目标图案的游戏,以及基于二进制有限域电路优化的研究项目。还有玩家提到了与 Unflip 玩法相似的复古游戏 Quadromania。一些玩家分享了他们的游戏体验,例如在特定关卡遇到的有趣图案,以及如何通过直觉或策略来解决难题。总的来说,Unflip 激发了玩家的创造力和分享精神,引发了关于游戏设计、算法和复古游戏的讨论。
- 原文: [Show HN: Unflip – a puzzle game about XOR patterns of squares](https://unflipgame.com/)
- Hacker News: [https://news.ycombinator.com/item?id=45891066](https://news.ycombinator.com/item?id=45891066)
- 作者: bogdanoff_2
- 评分: 152
- 评论数: 35
- 发布时间: 2025-11-12 02:36:01
---
🫵 来啊,说点有用的废话!
▲