每日HackerNews RSS

## JPEG XL MD5 哈希quine 总结 本文详细介绍了创建一张显示自身 MD5 哈希值的 JPEG XL 图像——“哈希quine”的过程。该项目基于quine的概念(一种输出自身源代码的程序),利用 MD5 散列算法的弱点和 JPEG XL 格式的独特特性。 核心技术是利用诸如 `fastcoll` 之类的工具,在 MD5 中利用“相同前缀碰撞”生成具有相同哈希值但位模式不同的文件对。然后,这些位翻转被策略性地嵌入到图像的残差数据流中(这得益于修改 JPEG XL 编码器以使用简化的全字母 Huffman 编码)。 JPEG XL 的模块化模式及其可编程的“预测树”至关重要。该树用于检测来自 MD5 碰撞的位翻转,将它们组合成十六进制数字,并在图像中可见地渲染这些数字。该过程涉及创建由位翻转控制的像素值“线路”,最终显示 MD5 哈希值本身。 经过大量的编码、碰撞块放置和最终哈希值暴力破解,一个可用的 JPEG XL 哈希quine 被创建出来。作者希望该项目能鼓励在其他文件格式中探索哈希quine,突出密码学、文件格式和计算创造力之间有趣的相互作用。

## 软件测试中固定数据的问题 随着测试套件的增长,测试的固定数据(预定义数据)也随之增加。虽然固定数据能提供速度和结构,但一个常见的问题是:**固定数据僵化**。当修改固定数据可能导致大量不相关的测试失败时,就会发生这种情况,因为每个测试都隐式依赖于它们当前的状态。对于成千上万的测试,即使是细微的固定数据更改也可能引发一连串的失败,导致开发人员完全避免修改它们。 两种常见的、但有缺陷的解决方案会加剧这个问题。为每个测试创建新的固定数据会使数据库膨胀并阻碍重用。在测试*内部*修改固定数据实际上是以一种无序的方式重新发明工厂模式。 避免固定数据僵化的关键在于**专注测试**。每个测试应该只验证其意图验证的*特定属性*,避免对整个数据集做出广泛的假设。测试不应断言基于特定固定数据ID的精确结果,而应确认预期的*行为*——包含、排除、排序——而不受底层数据添加或更改的影响。 固定数据本身并没有错;关键在于如何使用它们。通过编写精确的测试,开发人员可以在不陷入固定、不可更改的固定数据的陷阱的情况下,保持快速、结构化的测试。是使用固定数据还是工厂模式最终取决于项目的需求——有时,两者的结合是最好的。

## 冻结的测试固定数据:问题与解决方案 这次Hacker News讨论围绕着在大型项目中(特别是Rails和Django)使用测试固定数据所面临的挑战。核心问题是“冻结”的固定数据——随着应用程序的演进,它们变得僵化并破坏新的测试,表明测试与特定数据状态之间存在紧密耦合。 几种观点浮出水面。一些人认为固定数据是一种代码异味,暗示被测试的代码过于复杂,如果需要大量的设置。建议解耦ORM并传递普通对象,从而实现更简单、更隔离的单元测试。然而,也承认实用主义;完全隔离并非总是可行或高效的。 讨论中的替代方案包括使用工厂(或生成器)来创建内存对象,避免数据库负载。另一些人提倡编写关注行为而非实现细节的测试,并建议使用基于属性的测试。一个关键的收获是尽量减少共享状态,并确保测试对固定数据的变化具有鲁棒性。一些开发者成功地使用快照测试来测试API响应。 最终,讨论强调了测试可维护性、速度和彻底性之间的权衡,最佳方法取决于项目的具体情况和团队优先级。

本文题为“Transformers 知道的比他们能说的更多——学习考拉兹序列”,作者为 François Charton 和 Ashvni Narayanan,探讨了大型语言模型(LLM)——特别是 Transformers——在隐式学习数学概念方面的惊人能力,即使它们难以明确表达这些概念。 该研究重点关注考拉兹猜想,一个著名的数学未解难题。作者证明,当直接要求 Transformers 解决考拉兹问题时,它们常常失败,但当通过间接方式探究时,它们*确实*表现出对潜在模式的了解。这表明模型内部代表了超越其易于访问输出的数学理解。 本质上,这项研究强调了 LLM *知道* 的内容与它们能*告诉* 我们的内容之间的脱节,暗示了比先前假设的更丰富的内部知识表示。该作品采用知识共享署名 4.0 许可协议。

## 黑客新闻讨论:Transformer 与考拉兹序列 一篇最近发表的论文,探讨了 Transformer 如何学习考拉兹序列,引发了黑客新闻上的讨论。该研究调查了“机制可解释性”——理解这些模型*如何*得出解决方案,而不仅仅是*它们*是否能得出解决方案。 核心发现是,Transformer 擅长模式识别,但在考拉兹函数的算法“控制结构”(循环)方面表现挣扎,尤其是在进制转换方面。它们并非真正“理解”数学,而是依赖于识别二进制表示中的模式。有趣的是,性能很大程度上取决于输入所使用的数字基数。 一个关键的争论围绕着论文标题“Transformer 知道的比他们能说的更多”,以及它与内容之间的联系。一些人认为标题具有误导性,而另一些人则认为它引用了关于模型知识的相关研究。讨论还涉及学术出版实践——在论文长度限制下平衡彻底性,以及增量研究的价值与追求突破性单篇论文的价值。最终,这场对话突出了当前 Transformer 架构的局限性以及在数学推理方面改进的潜在途径。

## 数字毒品国家:社交媒体作为一种危险的毒品 本文认为,大型社交媒体公司的行为类似于危险的制毒行业,将利润置于公众福祉之上,并利用巨大的政治影响力来避免监管。就像一个假想的无监管海洛因市场会成为一股强大且腐败的力量一样,社交媒体巨头正在积极伤害用户——特别是青少年心理健康,正如美国总外科医生所承认的那样——同时从诈骗和有害内容中产生数十亿美元的收入。 尽管两党都支持《儿童在线安全法》等立法,但Meta等公司仍通过游说和财力成功地阻止了监管。与此同时,欧盟通过《数字服务法》监管平台的尝试受到了敌对对待,甚至引发了美国政府以贸易关税相威胁,以捍卫这些公司。 作者认为,这种动态已经使美国变成了一个“数字毒品国家”,科技亿万富翁有效地控制着政策,阻碍了保护公民的努力,并为了他们的利润而决定外交政策。这种比较凸显了一个令人不安的现实:强大的公司正在将利润置于个人安全和民主进程的完整性之上。

启用 JavaScript 和 Cookie 以继续。

## 寻找超越“成长”思维的工作 一篇最近在Hacker News上的帖子引发了关于寻找令人满意的工作,而无需不断追求职业晋升的讨论。作者是一位最近毕业的计算机科学专业的学生,他质疑了不断“升级”的期望,并感受到了一种以成长为导向的工作文化带来的压力,尤其是在他理想的情况涉及个人项目和舒适的工作生活平衡时。 评论者对此表示共鸣,指出许多人感到被迫将他们对编程的热情与需要一份工作来支付账单的现实分开。一些人建议专注于寻找好的同事,或者将工作视为资助个人追求的一种手段。另一些人则建议探索在成熟的、非科技公司或政府部门中的稳定职位,在这些职位中,持续成长并非必然优先事项。 一个关键的收获是,即使这意味着牺牲潜在收入,也要将工作与个人价值观保持一致的重要性。几位评论员强调了寻找支持性工作环境的价值,以及将生活质量置于无情的野心之上的重要性。最终,这场讨论凸显了对能够带来意义和可持续性的工作的渴望,而不是仅仅专注于攀登公司阶梯。

## C 编程规则:概要 本文档概述了编写健壮、封装的 C 程序的规则,在性能和代码清晰度之间取得平衡。 提出了两种核心方法:**纯封装**——将实现细节完全隐藏在 C 文件中,仅通过头文件暴露功能——以及**性能优先**方法。 对于纯封装,结构体内部成员被隐藏,只能通过函数访问,确保受控行为并防止滥用。 然而,这可能会影响性能。 另一种方法优先考虑编译器优化,通过暴露结构体成员来实现,使用 `const` 来防止意外修改(值类型前置,指针类型后置)。 关键原则包括谨慎的**内存所有权**——在同一函数/模块内分配和释放内存——以及避免使用 `void*` 而倾向于显式类型。 作者提倡使用 UTF-8 字符串、标准库函数,并避免全局/静态变量以提高线程安全性。 进一步的建议包括优先使用内联函数而不是宏,进行彻底的测试,编写专注的函数,模块化设计(如 UNIX),将警告视为错误,以及一致使用标准类型,如 `int32_t` 和 `bool`。 最后,适当的结构体成员排序(从大到小)对于平台兼容性和避免段错误至关重要。

这个Hacker News讨论围绕着Brent的《封装C编程规则》(2020)。文章引发了对几种C编程实践的争论。一个关键的争议点是浮点数比较——仅仅检查`FLT_EPSILON`是不够的,因为存在精度问题,理解ULP(最低有效位)对于可靠的比较至关重要。 其他讨论的话题包括内存管理(倾向于调用者分配而不是库分配)、`void*`用于多态的使用,以及将编译器警告视为错误的价值。 许多评论者推荐了Eskil Steenberg的《我如何用C编程》和CoreFoundation的创建规则等资源。 还有关于封装的讨论,一些人认为通过不透明结构和访问函数隐藏实现细节会限制用户的自由和性能。 最后,C语言中头文件的作用也存在争议,一些人哀叹它们的存在,并指出现代语言以不同的方式处理接口/实现分离。 许多评论者提倡Ada、Rust和D等语言作为C的潜在替代品,理由是它们具有更优秀的技术设计。

## ZX Spectrum Next 升级挑战 本文详细介绍了作者向其 Xberry Pi ZX Spectrum Next 添加 Pi Zero 加速器和 WiFi 的经验。尽管社区对特定板本发出了警告,但 Pi Zero 升级出乎意料地顺利。而 WiFi 设置却令人沮丧。 目标是使用现成的 ESP8266 模块添加 WiFi。尽管 YouTube 上有看似简单的教程,但由于缺乏关于固件、波特率和连接细节的清晰文档,整个过程受阻。安装“驱动程序”的尝试多次失败,ESP Updater 也未提供任何有用的反馈。 令人惊讶的是,成功的关键*不是*更新 ESP8266 固件。一个以前未刷机的模块立即工作,通过 UART 通信(提供了 16 号和 17 号引脚的代码)。即便如此,建立稳定的 WiFi 连接也需要坚持不懈。 最终,作者实现了 WiFi 连接,但建议 Pi Zero W 或 ESP32 可能会提供更简单的方案。尽管存在障碍,他们现在正享受着完全升级的 ZX Spectrum Next 体验。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 ZX Spectrum Next 在互联网上:Xberry Pi ESP01 和 Pi Zero 升级 (retrogamecoders.com) 61 分,ibobev 发表于 1 天前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:

## QEMU TCG 引擎:概要 QEMU 微型代码生成器 (TCG) 是负责在宿主机上执行目标指令的引擎。它采用前端/后端模型:前端生成中间表示 (IR) 代码,而后端将此 IR 翻译成宿主机特定的汇编代码。 翻译从 `tb_gen_code` 开始,它分配一个翻译块 (TB) 并使用 `gen_intermediate_code` 生成 IR。此函数依赖于架构,在通用的 `translator_loop` 中利用目标特定的“翻译器操作符”(例如,PowerPC 的 `ppc_tr_ops`)。该循环由这些操作符引导,处理核心翻译过程。 TB 包括序言和尾声以进行优化(例如,块链)。反汇编依赖于通用的 `DisasContextBase` 和目标特定的 `DisasContext`,捕获 CPU 状态以进行上下文翻译。 单个指令由诸如 `ppc_tr_translate_insn` 之类的函数进行翻译,这些函数会查阅操作码处理程序以生成相应的 IR。例如,PowerPC 的 `cmp` 指令被翻译成一系列执行比较的 TCG 指令。 最终,TCG 生成的 IR 代码*仍然*需要翻译成宿主机汇编。示例显示了 PowerPC 指令的 IR 等效项,包括用于内存访问和系统寄存器操作的特殊操作码,这些由 TCG “助手”处理(详见另一篇文章)。最终的 TB 包括用于管理执行流程的指令,可能链接到下一个 TB 或返回到 QEMU 翻译器。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 深入 QEMU:微码生成器 (TCG),第一部分 (2021) (airbus-seclab.github.io) 82 分,由 costco 1 天前发布 | 隐藏 | 过去 | 收藏 | 2 条评论 epilys 1 天前 | 下一个 [–] (2021)。请记住,TCG API 和内部结构没有稳定的保证,因此如果你与当前 QEMU 代码进行交叉引用,肯定会发现差异。回复 bionsystem 1 天前 | 上一个 [–] > 友善地倒带 这让我想起了那部优秀的电影,我会再看一遍(与帖子或主题无关,除了章节标题)。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

Please provide the content you want me to translate. I need the text to be able to translate it to Chinese.

## 酷刑的回声:从中央情报局黑站到佛罗里达拘留中心 一份近期国际特赦组织的报告揭示了9/11事件后中央情报局酷刑手段与佛罗里达一处被称为“鳄鱼阿尔卡特拉斯”的拘留中心对移民的待遇之间的令人不安的相似之处。该报告详细描述了使用小型、封闭的“箱子”作为惩罚,这让人联想到阿布·祖拜达等被拘留者曾遭受的“隔离箱”,受害者被束缚数小时,身处极端环境。 祖拜达曾遭受长时间的隔离,在棺材大小的箱子里度过了266小时,在仅两英尺宽的箱子里度过了29小时,并遭受了其他残忍的“强化审讯技巧”。中央情报局甚至考虑在箱子里添加昆虫。现在,据报道,移民因轻微违规行为,例如向狱警寻求帮助,而被置于类似的结构中。 这反映了一种令人不安的模式:对过去中央情报局酷刑行为缺乏问责,导致这些手段再次浮出水面。国际特赦组织的报告还强调了透明度方面令人担忧的问题,例如被拘留者从移民及海关执法局的数据库中消失,以及该设施中被拘留的总人数未知。 作者认为这不仅仅是未来的威胁,而是现在的现实,并将之与巴勒斯坦的监控国家以及英国特种部队在阿富汗涉嫌掩盖平民杀戮事件相提并论,表明了一种权力不受制约和非人化倾向的危险趋势。

更多

联系我们 contact @ memedata.com