每日HackerNews RSS

## 全球不平等达到危机水平:摘要 一份新报告显示,全球极端不平等现象严重,不到6万名个人——占世界人口的0.001%——控制的财富是全球最贫困50%人口的三倍。最富有的10%人口收入超过了其余90%的人口,而最富有的10%人口拥有全球75%的财富,而最贫困的一半人口仅占2%。 这份由200名研究人员撰写的《世界不平等报告2026》记录了这种差距,自1995年以来情况不断恶化,最富有的人的财富增长几乎是全球最贫困50%人口的两倍。该报告强调了一种由教育支出巨大差异驱动的“机会地理”,欧洲/北美地区的教育支出比撒哈拉以南非洲地区高出40多倍。 除了公平问题外,作者(包括托马斯·皮凯蒂)认为,这种程度的不平等威胁着经济稳定、民主和环境可持续性。他们提出解决方案,例如对全球最富有的人征收3%的税款,以资助发展中国家的教育,并呼吁成立一个国际小组来监测不平等现象,类似于气候变化的IPCC。该报告还将财富与气候排放联系起来,指出最富有的10%人口应对与私人资本相关的77%的排放负责。

## Go 的内存管理与返回值 从 C/C++ 过来的程序员可能会对 Go 函数返回值的能力感到困惑,因为它避免了 C 中常见的栈/堆问题。在 C 中,返回指向局部变量的指针会导致悬挂指针和未定义行为。 然而,Go 在编译期间使用 **逃逸分析**。如果变量的生命周期超出了它所定义的函数范围(例如,当它被返回时),编译器会自动将其分配到 **堆** 上,而不是栈上。Go 的 **垃圾回收器** 然后管理这块堆内存,确保只要它被引用,它就保持有效。 重要的是,当在 Go 中返回一个切片时,你实际上是在返回切片头(包含指向底层数组、长度和容量的指针)的 *副本*。这个头指向堆分配的数组,该数组在不再被引用之前会持续存在。 这与 C 形成鲜明对比,在 C 中,返回指向栈变量的指针会导致内存立即失效。Go 的设计优先考虑安全性并简化了内存管理,从而实现更简洁的代码,而无需 C 的手动分配/释放复杂性。

## 大脑的“语言网络” – 摘要 最近的研究,与埃维莉娜·费多连科讨论后得知,大脑内存在一个专门的“语言网络”,其功能类似于消化系统等生理器官。这个网络并非关于*思考*本身,而是作为一种界面,在思考和语言之间进行转换——用于理解和表达。 该网络主要位于左侧额叶和颞叶,包含负责将词语映射到含义以及控制语法规则的核心区域。对超过1400人的大脑扫描显示出一致的模式,但存在一些个体差异。 重要的是,这个网络不同于传统意义上的“语言区域”,例如布罗卡区,后者侧重于*产生*语音动作,而非语言处理本身。语言网络将抽象意义构建成词语序列,然后将其传递给运动系统进行输出。它是灵活沟通的关键组成部分,使我们能够将思想转化为不同语言的表达。

## C 和 C++ 中的闭包:性能深度剖析 本文调查了在 C 和 C++ 中实现闭包(数据和指令的结合,泛化函数)的性能影响。虽然闭包在现代语言中很常见,但在 C 中实现高效的闭包面临挑战。核心问题在于需要在不依赖于有问题全局状态(如静态变量)的情况下,将额外数据传递给像 `qsort` 这样的函数。 存在几种方法:重新实现函数以接受用户数据、GNU 嵌套函数、Apple Blocks 和 C++ Lambdas。使用 Knuth 的“Man-or-Boy”测试(强调递归和数据引用)对这些方法进行基准测试,揭示了显著的性能差异。 **主要发现:** * **C++ Lambdas(直接使用)最快**,受益于编译器在类型信息易于获取时的优化。 * **类型擦除(使用 `std::function`)会引入开销**,但仍然保持合理的效率。 * **Rosetta Code 风格的 Lambdas 令人惊讶地慢**,因为存在过多的数据复制。 * **GNU 嵌套函数目前性能较差**,这是由于与可执行堆栈相关的实现细节所致,从而阻碍了优化。新的基于堆的实现可能会改善这一点。 * **Apple Blocks 提供适度的性能**,受其运行时管理限制。 * **标准的 C 方法处于中等水平**,缺乏更高级技术的优化潜力。 分析强调了编译器优化和最小化数据复制的重要性。作者提倡为 C 提出“宽函数指针”提案,以实现高效的闭包实现并与其他语言互操作。最终目标是为 ISO C 设计一种高性能和标准化的闭包机制。

## C语言闭包的代价 - Hacker News 总结 Hacker News 的讨论围绕一篇博客文章 ([thephd.dev](https://thephd.dev/)),分析了 C 和 C++ 中闭包的性能影响。核心问题在于如何高效地实现闭包——“捕获”周围作用域中变量的函数。 文章指出,GNU 的嵌套函数虽然方便,但依赖于可执行堆栈,存在安全风险。一种提出的解决方案是堆分配“跳转”(中间代码)以避免这种情况,但会引入反分配的挑战。与 C++ 的方法(使用结构体来保存捕获的变量)的比较显示出显著的性能差异,通常 C++ 由于内联等编译器优化而表现更好。 讨论要点包括 C++ 中 std::function 与 std::function_ref 的复杂性、作者的专业知识(作为 ISO C 标准的贡献者)以及替代方法,如线程局部变量。许多评论者强调编译器优化和 ABI 细节在实现高效闭包实现中的重要性,并提倡在 C 中使用标准化的、一流的宽函数指针,以避免临时扩展。一个反复出现的主题是在处理 C 语言中的闭包时,性能、安全性和代码复杂性之间的权衡。

本教程探讨了如何为预训练的基于流的生成模型添加控制,使其能够执行其最初未训练的任务。以在MNIST数字上训练的模型为例,演示了两种关键技术:分类器引导(生成特定数字)和图像修复(填充缺失像素)。这两种方法都通过在潜在空间或像素空间中进行“速度校正”来微妙地调整模型的采样过程。 教程详细介绍了多种方法,包括标准的分类器引导、更快的潜在空间分类器方法以及PnP-Flow,后者通过迭代地将样本投影以满足约束条件。PnP-Flow提供了一种独特的方法,直接调整潜在位置,而不是修改速度。 核心概念是流模型通过迭代积分生成数据,每一步的微小校正都可以引导模型走向期望的结果。虽然类似的引导技术存在于扩散模型中,但流模型提供了一种更直观和确定性的方法。本教程强调了潜在空间操作在速度和效率方面的优势,并提供了代码示例来实现,展示了如何引导流生成特定结果。最终,这些“插件”方法提供了一种灵活的方式来控制生成模型,而无需重新训练。

一位教授和他们的学生在使用PyTorch的MPS后端(针对Apple Silicon)时,与CUDA和CPU相比,在使用Stable Audio Open Small模型时遇到了结果不一致的问题。他们正在构建一个文本条件下的潜在流匹配生成模型作为课堂项目,由于LLMs对编码任务的影响,他们从传统的作业方式转变。 问题集中在MPS产生的不准确输出上,尽管使用了受支持的操作。教授正在寻求Hacker News社区的帮助来诊断问题,并链接了一个相关的pull request,其中详细说明了类似的不准确性。 一位评论员提出了一个更广泛的问题,关于数据在LLM智能中的作用,质疑了从非语言数据(如随机数)训练的模型生成有用输出的意义。原始帖子既是对技术援助的请求,也是对他们基于项目的学习方法的介绍。

## 揭秘 Linux 内核 大多数 Linux 入门教程侧重于 shell 命令,将内核视为隐藏组件。本次探索旨在改变这种状况,展示内核只是一个可编译和可运行的二进制文件。 内核充当应用程序和硬件(CPU、内存、设备)之间的抽象层,提供统一、安全的接口。它管理资源、控制访问,并提供防火墙和文件系统等功能,作为计算机的“运行时”。你通常可以在 `/boot` 目录下找到它,通常命名为 `vmlinuz-*`。 实验涉及使用 QEMU 直接启动此内核。最初的尝试会导致“内核崩溃”,因为内核需要一个根文件系统才能运行。这可以通过创建一个最小的 `initramfs` 来解决——一个包含基本“init”程序(此处使用 Go 创建)的临时文件系统,用于启动系统。 成功使用 `initramfs` 启动,证明了一个功能完备但简单的 Linux 发行版。关键收获:内核是一个文件,发行版是内核加上程序,进程(例如我们的 PID 为 1 的 Go 程序)在“内核空间”或“用户空间”中运行。这种动手实践的方法能够建立对 Linux 系统如何运作的基础理解。

## 在 QEMU 中启动 Linux & 内核作为程序 - 摘要 一篇最近的 Hacker News 文章详细描述了一个在 QEMU 中启动最小 Linux 系统的实验,其核心思想是将内核仅仅展示为另一个程序。作者构建了一个基本系统,其中一个 Go 程序充当初始进程(PID 1),强调了即使是复杂的操作系统也可以被理解为一系列与硬件交互的程序。 讨论的中心是 `initramfs` 的作用,它是在启动期间加载到内存中的文件系统,处理加载驱动程序和挂载根文件系统等任务——尽管对于最小化设置来说它*不是必需的*。用户分享了构建自定义内核的经验(例如使用 Gentoo),以及理解低级系统组件的好处。 作者计划创建一系列文章,以揭示 Linux 内部原理,面向开发者,重点介绍系统调用、文件作为资源以及用户/组权限等概念。他们选择 Go 是因为它易于上手,同时仍然允许与操作系统密切交互,与 C 的复杂性形成对比。目标是弥合简单*使用* Linux 与理解其底层机制之间的差距。

## Wirebrowser:强大的客户端调试工具包 Wirebrowser是一个全面的工具包,用于调试、拦截流量和检查Web应用程序的内存,基于Chrome DevTools Protocol (CDP) 构建。它将网络操作、API测试、自动化和详细的JavaScript内存分析结合到一个界面中。 主要功能包括实时HTTP请求/响应操作以及强大的内存检查工具,例如**实时对象搜索**(在运行时修补对象)和**断点驱动堆搜索 (BDHS)**——通过在调试器暂停时捕获堆快照来追踪数据变化的来源。独特的**混合结构相似性引擎**有助于搜索和追踪不断变化的对象。 除此之外,Wirebrowser允许创建和执行API请求(类似于Postman),并支持浏览器/Node.js脚本进行自动化。操作可以全局应用或应用于特定的浏览器标签页。Wirebrowser使用JavaScript构建,基于React和Node.js,是开源且积极开发的,未来计划包括SPA爬取和DOM XSS扫描。 [https://github.com/fcavallarin/wirebrowser](https://github.com/fcavallarin/wirebrowser)

## Wirebrowser:一种新的 JavaScript 调试器 Wirebrowser 是 fcavallarin 创建的一种新的 JavaScript 调试器,结合了网络检查、请求重写、堆快照和实时对象搜索。其关键的实验性功能,**断点驱动堆搜索 (BDHS)**,在调试器暂停时自动捕获堆快照,允许开发者追踪 JavaScript 运行时内值的来源和创建过程。 另一个功能,**实时对象搜索**,能够使用正则表达式和对象相似性来检查甚至修补运行时对象。创建者构建 Wirebrowser 的目的是为了整合通常分散在多个工具(如 DevTools 和 Burp)中的调试流程。 早期的反馈指出,处理大型内存对象可能存在问题,讨论的重点在于与时间旅行调试器(如 Replay.io)以及类似的 C++ 调试工具的比较。Wirebrowser 的独特之处在于,它通过 Chrome DevTools Protocol (CDP) 与未修改的浏览器配合工作,而无需代码检测。提供了一个演示视频,该项目欢迎反馈,特别是关于 BDHS 的实用性的反馈。

## Cloudflare Python Workers:快速、可扩展,现已全面支持包 Cloudflare 显著增强了其 Python Workers 平台,为 Python 开发者提供了一个引人注目的无服务器选项。Python Workers 之前受到限制,现在支持**任何与 Pyodide 兼容的包**,利用名为 **pywrangler** 的新工具系统,该系统围绕 `uv` 包管理器构建,方便安装和依赖管理。 一个关键的重点是**减少冷启动时间**。通过专用的**内存快照**,Cloudflare Workers 实现**比 AWS Lambda(未使用 SnapStart)快 2.4 倍的冷启动,比 Google Cloud Run 快 3 倍**——自动且无需额外费用。这是通过恢复预初始化状态实现的,从而绕过了启动期间耗时的运行时和包加载。 Python Workers 能够在几分钟内在全球范围内部署应用程序,并提供慷慨的**免费套餐**(每天 100,000 个请求)。它们非常适合各种用例,从简单的 HTTP 请求处理到计划任务(cron 触发器)以及利用 Workflows 和 Durable Objects 的复杂应用程序。 Cloudflare 致力于进一步改进,包括增强的工具、更快的冷启动、更广泛的包支持和扩展的网络功能。

## CSS 的遗憾:一份重新设计的愿望清单 本文概述了 CSS 设计历史上积累的许多被认为失误的地方,其中许多与一致性和可预测性有关。一些属性的命名很别扭(例如,`z-index` 应该为 `z-order`,`hyphens` 应该为 `hyphenate`),或者功能不合理(例如,表格上的 `vertical-align`)。 核心问题包括默认行为在实践中证明无用(如 `background-repeat: no-repeat`),轴向顺序不一致(定位属性采用垂直优先),以及解决方案过于复杂(如 `word-wrap`/`overflow-wrap`)。 建议改进颜色处理、Unicode 范围语法和 flexbox 的尺寸模型。 其他要点涉及解析歧义(字体名称)、布局怪癖(外边距折叠、表格布局)以及简化机会的错过(RGBA/HSLA、简写属性)。 作者还提倡更好地为选择器做好未来适应,并制定更强大的 `@import` 规则。最终目标是使 CSS 更加逻辑、易于维护,并且更容易构建工具。

## CSS 设计缺陷:一则 Hacker News 讨论总结 最近 Hacker News 上进行了一场关于 CSS 设计中长期存在的错误的讨论。对话强调了网页开发者面临的诸多痛点,这些痛点源于历史妥协和设计选择。 主要抱怨包括最初对使用 HTML 表格进行布局的过度反应(导致多年居中困难),边距折叠的复杂性,以及 flexbox 与 grid 的不直观性。许多人哀叹语义 CSS 和表现 CSS 之间缺乏明确区分,以及可靠地居中元素所面临的困难。 一些评论员指出早期的浏览器大战和匆忙的实现是许多问题的根本原因。另一些人则提倡诸如 CSS 版本控制或“严格模式”之类的功能,以实现向前兼容性并纠正过去的错误。讨论还涉及了有问题单位系统(像素与物理单位)以及 `!important` 仍然存在的问题。 最终,该帖子是对 CSS 演变的回顾,承认了它的优点,同时也指出了如果做出更好的设计选择,可以显著改善 Web 开发体验的领域。

启用 JavaScript 和 Cookie 以继续。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 3D打印的颈动脉芯片,用于个性化血栓研究 (wiley.com) 27点 由 PaulHoule 22小时前 | 隐藏 | 过去 | 收藏 | 2评论 CarRamrod 19小时前 [–] >动脉芯片设备 它们能运行DOOM吗? 回复 gsf_emergency_6 19小时前 | 父评论 [–] 可能在蘑菇上更便宜 https://youtube.com/shorts/DgeSSmjw7fE 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

更多

联系我们 contact @ memedata.com