每日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,突出密码学、文件格式和计算创造力之间有趣的相互作用。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 构建第一个 JPEG XL MD5 哈希 Quine (stackchk.fail) 7 分,由 luispa 1 小时前发布 | 隐藏 | 过去 | 收藏 | 2 条评论 b16m 12 分钟前 [还有 3 条] [已标记] blenderob 2 分钟前 | 父评论 | 下一个 [–] 这是一个错误地声称帖子重复的自动化机器人:https://news.ycombinator.com/threads?id=b16m 看起来它已被封禁:https://news.ycombinator.com/item?id=46188453 它怎么还能发帖?回复 jsnell 3 分钟前 | 父评论 | 上一个 [–] 对于最初没有引起任何关注的文章,允许少量重复提交是可以的。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

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

这个Hacker News讨论围绕一篇博客文章,文章详细介绍了大型软件项目中“冻结”测试固定数据的弊端。核心问题在于,紧密耦合的测试依赖于特定的预定义数据,容易变得脆弱并阻碍未来的开发。添加新功能或项目可能会意外地破坏现有的测试,即使新代码*实际上*并未影响被测试的功能。 一位评论者指出文章中的一个具体例子,一个测试仅验证*部分*活跃项目被返回,而不是*全部*,并且不包含非活跃项目——这是一个关键的区别。他们提倡在测试本身附近创建测试数据,专注于验证正确的活跃项目集合。 另一位用户注意到使用工厂(一种常见的测试数据生成方法)的性能影响,并正在考虑切换到固定数据,发现这次讨论有助于理解潜在的缺点。作者确认了自己的存在并感谢了发帖者。

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

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Transformer模型知道的比他们能表达的更多:学习考拉兹序列 (arxiv.org) 5 分,作者 Xcelerate 1小时前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

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

## 黑客新闻讨论摘要:美国作为“数字毒品国家” 一篇近期文章(链接自paulkrugman.substack.com)引发了黑客新闻对美国现状的讨论,许多评论者认为美国正逐渐成为一个“数字毒品国家”。 担忧集中在美国将财务成功置于一切之上,导致寡头政治和个人自由的衰落。 多位用户批评了美国的对外政策,特别是对欧洲的 perceived 攻击以及对俄罗斯和中国的 lenient 态度,可能促使欧洲与竞争对手建立更紧密的联系。 对话还涉及国内问题,例如社交媒体对儿童的危害,呼吁进行年龄验证和监管。一个反复出现的主题是滥用“自由”言论来使富人受益,以及需要强大的机构和监管来对抗失控的权力反馈循环。 一些人认为应该将海洛因等毒品合法化,理由是禁令的失败,而另一些人则以葡萄牙的经验作为警示。 最终,许多人认为美国优先考虑利润的模式是一条危险的道路,需要对社交媒体和不受约束的公司权力进行全球清算。

启用 JavaScript 和 Cookie 以继续。

## 寻找非增长型的工作:Hacker News 讨论 最近一篇 Hacker News 帖子引发了关于寻找软件开发工作,而这些工作不追求典型的“增长”型科技环境的讨论。许多评论者同意这具有挑战性,但并非不可能。 一些人建议瞄准中型、私营、B2B 公司,这些公司在既定的利基市场中拥有优势——尽管这些公司的招聘机会通常有限。另一些人则提倡接受任何工作以获取经验,将工作与个人项目分开,并利用技能来获取额外收入。非营利组织和政府工作也被提及为潜在的选择,它们提供稳定而非快速扩张。 一个反复出现的主题是,大多数公司*需要*增长才能生存,停滞不前等同于衰退。一些人认为,即使在看似静态的角色中,持续学习也是必不可少的。最终,这场对话凸显了理想的工作与生活平衡与就业市场的现实之间的紧张关系,许多人建议创业或专注于技能发展作为可行的替代方案。

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

黑客新闻 新的 | 过去的 | 评论 | 提问 | 展示 | 工作 | 提交 登录 Brent 的封装 C 编程规则 (2020) (retroscience.net) 6 分,来自 p2detar 1 小时前 | 隐藏 | 过去的 | 收藏 | 2 条评论 Jean-Papoulos 11 分钟前 | 下一个 [–] >这意味着你可以通过头文件解释代码的所有意图,并且使用你的库/代码的开发者永远不需要查看代码的实际实现。 我讨厌这样。如果我的智能感知没有提供足够的信息(从文档注释生成),那么我需要查看实现。这只会增加负担。 头文件无疑是一个糟糕的设计选择,这就是为什么九十年代之后的大多数语言都取消了它们。回复 jjgreen 32 分钟前 | 上一个 [–] 太棒了,我之前怎么没发现这个?回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## 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) 7 分,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 翻译器。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 深入 QEMU:微代码生成器 (TCG),第一部分 (airbus-seclab.github.io) 9 分,由 costco 1 小时前发布 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

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

## AlgoDrill:强化LeetCode学习 AlgoDrill (algodrill.io) 是一款新工具,旨在解决初次练习后忘记 LeetCode 模式的常见问题。开发者创建它是因为自己反复遇到难以回忆解决方案的情况,即使在成功完成问题之后。 AlgoDrill 不仅仅是*解决*问题,而是专注于通过交互式训练,逐行*重建*问题,利用主动回忆。它利用流行的 NeetCode 150,并按常见模式(滑动窗口、双指针、DP)对问题进行分类,并附带“第一性原理”解释。 目标是超越识别,达到自信、快速的实现——这对于技术面试至关重要。开发者正在寻求反馈,以确定这种基于训练的方法是否比传统的解决问题更有效,并欢迎有关改进用户体验的建议。

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

一场 Hacker News 的讨论围绕着一篇近期文章,文章详细描述了中央情报局(CIA)“黑站”酷刑手段——特别是“禁闭箱”——在高安全监狱(绰号“鳄鱼阿尔卡特拉斯”)中的使用。 用户将其与过去的美国滥用行为(如阿布格莱布)和当前的 ICE 突袭联系起来,认为这表明一种反复出现的升级策略和非人化模式,其根源在于指挥结构。 讨论质疑了民主国家使用此类方法与公然独裁政权之间的区别。 评论员表达了愤怒,一些人呼吁处决肇事者,而另一些人则警告不要非人化*他们*,强调他们仍然是能够犯下暴行的人。 话题短暂地转移到美国总统政府,一位用户指出,无论谁执政,中央情报局的做法都会持续下去。

更多

联系我们 contact @ memedata.com