2025 07 14 HackerNews

2025-07-14 Hacker News Top Stories #

  1. 谷歌Chrome从MV2到MV3的转变取消了webRequestBlocking权限,但发现了一个bug允许绕过该限制。
  2. Mozilla社区成员建议Firefox收费,以支持其开发并提供无广告、无遥测的版本。
  3. 美国最高法院裁决使涉及性内容的在线写作几乎失去了言论自由保护。
  4. 作者在2025年首次阅读《神经漫游者》,对其前瞻性科技描绘印象深刻。
  5. Zig编程语言引入新异步I/O特性,允许自定义I/O实现并注入到依赖代码中。
  6. Moonshot AI推出的Kimi K2语言模型基于混合专家架构,适用于研究和通用聊天体验。
  7. 文章详细解释了屏幕的工作原理,从电子枪到现代电晶体的发展历程。
  8. 亚利桑那州一居民因鼠疫去世,公共卫生官员呼吁居民注意防范。
  9. 北韩假IT工人问题普遍,利用深度伪造等手段骗取远程工作机会。
  10. 文章探讨了在C语言中实现协程的方法,无需依赖实时操作系统。

Bypassing Google’s big anti-adblock update #

https://0x44.xyz/blog/web-request-blocking/

这篇文章由 Derin Eryılmaz 在 2025 年 7 月 12 日发表,主题是关于如何在谷歌 Chrome 浏览器的大反广告拦截器更新中找到一个绕过方法。文章首先介绍了浏览器的“MV”(manifest version)版本,特别是谷歌 Chrome 正在淘汰 MV2 以支持 MV3,这对广告拦截器产生了不利影响。MV3 引入了 Chrome 扩展的新运行时,取消了 webRequestBlocking 权限,这是广告拦截器正常工作所依赖的关键权限。

文章接着讲述了作者在 2023 年发现并报告给谷歌的一个 Chrome 浏览器的 bug,这个 bug 使得在 MV3 中仍然可以使用 webRequestBlocking(以及广告拦截器)。作者认为这是他发现的最有趣的 bug 之一,并呼吁停止用 JavaScript 编写浏览器,因为扩展是用 JavaScript 编写的,而 API 函数看起来像是 JavaScript 函数,但实际上它们是特殊的,通过绑定执行浏览器的 C++ 操作。这种设计理论上应该是安全的,但过去谷歌曾将 JavaScript 文件注入到使用 Chrome API 的页面中,这些“扩展绑定模块”会在将参数传递给浏览器之前初始化 API 函数和验证参数。这种做法导致了 2015 年和 2016 年的多个通用 XSS 漏洞。

尽管谷歌从错误中吸取了教训,将大多数 API 绑定转移到了纯 C++,但仍有一些 JavaScript 绑定文件存在并被使用至今。例如,如果 Chrome 扩展运行特定的代码,它将陷入一个 JavaScript 循环并无限期挂起。然后,作者提到了与广告拦截器相关的一个 API——chrome.webRequest,它仍然使用 JavaScript 绑定。

文章详细描述了作者发现的 bug:在 MV2 扩展中,通过添加一个监听器来阻止对 example.com 的请求。但在 MV3 中,这种添加阻止监听器的方法不再有效。然而,作者发现了一个疯狂的方法:创建自己的事件。尽管这在理论上是不可能的,但由于 JavaScript 绑定的工作方式,实际上是可以做到的。作者通过深入研究 C++ 代码,发现了一个漏洞:opt_webViewInstanceId 参数。这个参数是为 Chrome 平台应用设置的,允许它们管理其嵌入式网站(WebViews)。如果一个事件有一个 WebView ID,那么 webRequestBlocking 的权限检查就会被跳过。问题在于,浏览器从未验证带有 WebView ID 的事件是否真的属于平台应用,因此扩展可以伪造它,跳过检查,并使用阻止功能。

最后,作者指出,尽管理论上有人可以使用这个 bug 在 MV3 中制作一个完全正常工作的广告拦截器,但他自己不知道如何制作广告拦截器,所以他选择在 2023 年 8 月向谷歌报告了这个问题。这个问题在 Chrome 118 版本中被修复,通过检查使用 opt_webViewInstanceId 的扩展是否真的具有 WebView 权限。对于这个报告,作者获得了 0 美元的奖励,因为谷歌认为这不是一个安全问题,因为它没有给扩展提供它们原本没有的数据访问权限。作者以对这次发现的有趣经历的回顾结束了文章,并提到了他在同年发现的另一个 Chrome 扩展的 bug,那个 bug 获得了 CVE 编号和 1 万美元的奖励。


HN 热度 947 points | 评论 819 comments | 作者:deryilz | 1 day ago #

https://news.ycombinator.com/item?id=44544266

  • 如果人们不同意谷歌的做法,正确的做法是放弃 Chrome 和所有基于 Chromium 的浏览器,打击它们的垄断地位。
  • 许多人忘记了 IE 的教训,不学习 Web 标准,而是将 Chrome 与他们的应用程序一起分发。
  • 一些开发者因为压力或无知,将“在 Chrome 中工作”等同于“工作”,即使这可能只是 Chrome 的一个特性或使用了破坏与其他浏览器兼容性的 Chrome 相关技巧。
  • 有时标准没有定义某些确切行为,留给浏览器实现者来决定,Chrome 和其他浏览器可能以不同的方式实现,但都符合标准。
  • 有时应用程序包含错误,但 Chrome 的某些宽容行为意味着它可以正常工作,然后应用程序就被发布了。
  • 有时人们会使用 Chrome 或移动 Safari 特定的 API 或功能,因为他们不知道更好的方法。
  • 一些安全/WAF/反机器人软件依赖于 Chrome 特定的 JavaScript 怪癖,并认为使用 Firefox 或其他非 Chrome 或 iOS Safari 浏览器的用户是机器人并阻止他们。
  • Chrome 在很多方面成为了新的 IE,这并非谷歌或其他浏览器作者的错。
  • Safari 是新的 IE,它充满了漏洞,苹果公司积极阻止 Web 标准的进展。
  • 苹果通过阻止 Web 推送和破坏 PWA 模式下的大部分功能,阻止了 Web 应用程序的发展。
  • Safari 通过无数小问题导致开发者痛苦,它延迟音频播放的行为在其他浏览器上不会出现。
  • 在发布任何网站/应用程序之前,确保它在苹果 Safari 移动版上也能工作,因为它通常拖慢 Web 标准的进展。
  • 苹果是谷歌占领 Web 作为 ChromeOS 开发平台的最后一个抵抗者,没有 Safari 我们就完了。
  • 一旦 Chrome 在 iOS 变体上获得自由统治,是时候将简历打磨成 ChromeOS 应用开发者而不是 Web 开发者了。
  • 其他浏览器引擎可以存在,只要 JIT 属于系统即可,其他可以使用苹果的 JavaScriptCore。
  • JIT 之所以必须属于系统,是因为资本主义,如果用户可以安装任何软件,苹果就无法存在。
  • 资本主义不存在,因为商标、版权和专利的存在使得资本主义名存实亡。
  • 真正的资本主义由于缺乏透明度、紧急性、垄断等,永远无法存在,我们最多只能拥有政府控制的资本主义。
  • Web 标准是由 Chrome 工程师决定实现的功能,以提升他们的年度绩效评估。
  • 在葡萄牙/西班牙,我们也需要担心这个问题,Safari 移动用户在这里是少数,但他们通常有更多的钱可以花。
  • 那些富有的人不知道什么对他们有好处,一直购买 iPhone,我想知道为什么?
  • 他们没有足够喜欢他们的朋友来帮助他们解决安卓手机的问题。
  • Chrome 拥有如此大的市场份额,以至于他们控制了标准机构,尾巴摇狗。
  • 谷歌发布规范,征求 Mozilla 和 WebKit 团队的反馈,然后无视安全和隐私问题,照样部署实施,导致 Web 开发者抱怨 Safari 落后,指责苹果阻碍了 Web 的发展,而没有人关心 Firefox。
  • 许多 Web 开发者已经停止关心标准流程,谷歌添加的任何功能都是他们对“网络”的定义,这也发生在 Internet Explorer 统治时期,许多 Web 开发者乐于编写仅适用于 Internet Explorer 的网站,这种单一文化极大地损害了网络。Chrome 是新的 Internet Explorer。

Let me pay for Firefox #

https://discourse.mozilla.org/t/let-me-pay-for-firefox/141297

这篇文章是关于 Mozilla 社区成员 John Karahalis 提出的一个观点,即 Mozilla 应该考虑对 Firefox 浏览器进行收费。John Karahalis 是一位长期的 Mozilla 支持者,他曾参与过推广 Firefox 的项目,并在 Mozilla 公司全职工作了八年。他认为,现在是一个合适的时机来考虑对 Firefox 进行收费,这与开源软件的自由精神并不矛盾,因为即使是自由软件基金会也认为软件费用和软件自由是可以兼容的。

John Karahalis 提到,他理想中的 Firefox 世界是,任何不想付费的用户都可以不付费。只要 Firefox 保持自由和开源,用户就可以选择使用分支版本,尽管他们可能不会得到相同的客户服务或快速的软件更新。他强调,即使 Firefox 收费,用户仍然有权使用替代包,如 LibreWolf、Waterfox 和 IceCat 等。

文章中,John Karahalis 表达了他对当前互联网公司依赖广告收入模式的担忧,他认为这种模式导致了不良后果,如 Facebook 对社会的负面影响。他希望 Mozilla 能够避免这种命运,并允许用户直接资助 Firefox 的开发。

他还提到,他愿意为那些将用户放在首位的软件付费,包括免费和开源软件。他认为,如果 Firefox 成为一个用户资助的产品,很多人会回归,因为他们不喜欢 Mozilla 目前的商业模式。他建议 Mozilla 至少提供一个选项,进行实验,发布一个没有赞助内容、没有遥测、默认不使用 Google,并且内置广告拦截功能的 Firefox 版本,他愿意为此付费。

文章的评论部分,用户 pmg 表示同意 John Karahalis 的观点,并提到他愿意接受仅在 Mozilla 内部用于产品开发的可选遥测。另一位用户 mzmzM114h 表示,他也不是唯一一个有这种观点的人,他补充说,尽管有人认为没有人会为浏览器付费,但实际上我们从未有机会为 Firefox 付费。他提到 Mozilla 家族中的 Thunderbird 就是一个成功的案例,它完全由直接捐赠资助。他认为,如果 Mozilla 能够建立一个专门用于 Firefox 开发的直接捐赠渠道,并提供一个官方的“无废话”版本或透明的构建配置器,这将有助于建立社区的好感和信任。


HN 热度 705 points | 评论 555 comments | 作者:csmantle | 15 hours ago #

https://news.ycombinator.com/item?id=44548610

  • 有人对 Mozilla 基金会失望,认为捐款可能被用于不合理的地方,如内置广告、高管奖金等。
  • 有人认为在 Hacker News 上批评 Mozilla 已成为一种趋势,部分评论者似乎在竞争谁更讨厌 Mozilla。
  • 尽管 Mozilla 有其问题,但仍有人支持 Firefox,认为它支持丰富的扩展且性能良好。
  • 有人指出 Firefox 存在许多小问题,认为 CEO 的高薪足以雇佣更多的开发人员。
  • 有观点认为,领导力的价值可能超过 30 名开发人员,但 Mozilla 的领导层表现不佳,使得高薪酬难以辩护。
  • 有人质疑为何需要支付超过 150K 美元的总薪酬来聘请好的软件工程师。
  • 有人认为如果薪酬基于价值创造,许多软件开发人员的薪酬会高得多。
  • 有人指出许多开发者不会离开工作去自由职业或创业,因为自由职业需要处理更多非技术问题,且薪酬更不稳定。
  • 有人提到,即使在年收入十亿美元的企业中,开发者通过微小改进也能创造巨大价值。
  • 有人表示,由于健康保险等问题,在美国自由职业者较少,而在英国曾非常普遍,但因 IR35 规则而减少。
  • 有人解释 IR35 规则可能是指如果你只有一个客户,你就是雇员,这在大多数欧盟国家是非法的。
  • 有人认为许多开发者的薪酬低于 150K 美元,而且很多人夸大了自己的收入。
  • 有人认为 150K 美元对于许多欧洲工程师来说是很高的薪酬,尤其是在远程工作的情况下。
  • 有人认为 150K 美元在美国也是不错的薪酬,认为这个数字低的人可能生活在泡沫中。
  • 有人认为在欧洲作为个人贡献者,有可能获得超过 2 倍于 150K 美元的总薪酬。
  • 有人认为在欧洲获得这样的薪酬是可能的,但并不常见。

Supreme Court’s ruling practically wipes out free speech for sex writing online #

https://ellsberg.substack.com/p/free-speech

这篇文章讨论了美国最高法院最近的裁决,该裁决几乎彻底消除了对涉及性内容的网络写作的言论自由保护。作者 Michael Ellsberg 指出,最高法院的裁决使得保守州能够通过个人伤害律师和家长的联手,跨州起诉那些在个人网站上发布性内容的创作者。根据这一裁决,像作者这样的写作人,如果不在网站上实施年龄验证措施,就可能面临巨额的法律责任,甚至刑事指控。

文章强调,最高法院的裁决使得某些州(如田纳西州和南达科他州)的法律得以生效,这些法律允许州检察官对任何认为 “对未成年人有害” 的内容进行起诉,甚至可以追溯到其他州的创作者。田纳西州的一项法律规定,如果网站上包含超过 33% 的 “对未成年人有害” 的内容,而网站所有者未能实施复杂且侵犯隐私的年龄验证措施,就可能面临三到十五年的监禁。

Ellsberg 明确表示,他不会在自己的网站上要求读者提供身份证明,也不会将自己的网站设为仅限成年人访问。他认为,这种新的法律环境对创作者构成了巨大的威胁,并使他们的言论自由受到压制。他提到,这种 “寒蝉效应” 是非常严重的,因为它不仅影响到性写作,还可能对所有创作自由构成挑战。

他还指出,南达科他州的新法律使得发布任何被认为 “对未成年人有害” 的材料的行为都可能构成轻罪,甚至是重罪。Ellsberg 认为,这些法律对自由言论的压制是不可接受的,并呼吁其他创作者关注这一问题,积极保护自己的权益。

最后,Ellsberg 强调,即使面临法律的威胁,他也会继续坚持自己的写作风格,不会屈服于不合理的法律要求。他鼓励其他创作者也要坚定立场,捍卫言论自由。


HN 热度 653 points | 评论 928 comments | 作者:macawfish | 1 day ago #

https://news.ycombinator.com/item?id=44543865

  • 所有这些身份验证法律都过于严格,父母期望政府和随机网站来教育他们的孩子。
  • 如果这些法律继续推进,需要有一种方式在不向第三方发送身份证图片或提供个人详细信息的情况下验证成年身份。
  • 可以像苹果支付那样进行身份验证,通过生物识别技术在手机上进行验证,然后发送信号到浏览器。
  • 人们应该能够设置浏览器/计算机自动发送这些信息,特别是在单用户设备上。
  • 网站请求数据时应该包含他们的访问规则,如必须年满 18 岁或必须在特定国家等,然后设备检查 ID 是否符合规则,只返回检查结果。
  • 零知识证明是解决方案,网站向用户设备发送验证功能,用户设备返回一个证明,表明它知道一个输入,该输入被验证功能接受。
  • 可以使用基于属性的凭证,挑战者特定凭证仅包含请求的属性。
  • Yivy(原名 IRMA)项目需要重新品牌、标准化,并需要企业级基础设施来推广和支持替代服务提供商。
  • 苹果对隐私问题敏感,ISO 规范的目的是允许请求精细的数据,如仅出生年份,W3C 标准明确指出隐私是一个复杂的问题,可能需要监管。
  • 规定可能是问题所在,如果没有规定,没有人会被迫向每个可疑的应用程序和网站透露个人信息。
  • 技术有很大的潜力增强隐私,但系统性滥用技术的行为会推动采用。
  • 年龄验证从愚蠢到令人不寒而栗,不能将这些问题推给简单的测验。
  • 要求有人拥有政府 ID 并不是 100% 有效,因为人们可能会借用别人的 ID 或者使用已经登录为他人的设备。
  • 如果我们承认解决方案不是 100% 有效,为什么我们不能承认那些不是 100% 有效但更能保护隐私的解决方案?

Reading Neuromancer for the first time in 2025 #

https://mbh4h.substack.com/p/neuromancer-2025-review-william-gibson

这篇文章由 James Bareham 撰写,讨论了在 2025 年第一次阅读威廉・吉布森的经典科幻小说《神经漫游者》的体验。作者坦言,他在 2016 年加入《The Verge》之前并未听说过《神经漫游者》,虽然他对许多现代科幻主题(如赛博朋克、网络空间、计算机黑客、企业间谍、网络虚拟现实和人工智能)有所了解,但他不知道这些主题很多都是在吉布森的书中首次出现或变得突出。

作者选择阅读《神经漫游者》的原因主要有两个:一是为了开始新的一年,尽量避免社交媒体的干扰;二是想多读一些精装的科幻书籍。他在这方面的计划包括阅读菲利普・K・迪克的《扫描暗黑》和《机器人会梦见电子羊吗》,以及阿斯莫夫的《基地三部曲》。然而,他的首选仍然是《神经漫游者》,并在一周内读完了这本书。

《神经漫游者》被认为是赛博朋克的典范,描绘了一个科技驱动的阴暗未来世界。尽管书籍较短,但阅读体验并不轻松,吉布森创造了大量技术术语,尤其是在描述网络空间时,语言显得十分晦涩,作者发现自己经常需要反复阅读才能理解内容。

文章中提到,吉布森的写作风格有时令人感到抽象,尤其是与他之前使用的 “Lorem Gibson” 文本相比。尽管如此,细心阅读后,许多抽象段落的意义逐渐清晰。作者指出,阅读《神经漫游者》的挑战之一在于书中大量的内容已经被许多后来的科幻电影、电视剧、动漫和视频游戏所吸收、采样和重混,导致很多场景和概念在现代看来显得过于熟悉。

作者还提到,尽管《神经漫游者》是 1984 年的作品,但其很多科技设想在今天依然颇具前瞻性,比如对人工智能和虚拟现实的描绘。然而,书中没有提到手机等现代科技,反而保留了一些过时的元素,如在酒吧吸烟和印刷媒体的普遍存在。

此外,吉布森在书中提到的技术多为日本和德国品牌,反映出 1984 年时对未来科技的看法,特别是日本在消费电子产品领域的主导地位。作者引述了一位未来学家的观点,即人们往往高估了 50 年后的科技发展,而低估了未来两年的变化。

总体而言,《神经漫游者》不仅是一本重要的科幻小说,更是整个赛博朋克流派的蓝图。即使没有读过这本书,许多人也能在现代科幻电影和作品中感受到它的影响。尽管时代变迁,吉布森对人性的思考依然具有现实意义,这使得《神经漫游者》在今天的阅读依然具有启发性和价值。


HN 热度 363 points | 评论 320 comments | 作者:keiferski | 16 hours ago #

https://news.ycombinator.com/item?id=44548353

  • Neuromancer 对作者产生了深远影响,成为其年度必读书籍,即使能背诵也不失魅力。
  • 作者与赠书女孩结婚并育有孩子,尽管最终离婚,但仍保持朋友关系。
  • Neuromancer 和其他科幻作品一样,拥有丰富的背景世界构建,值得反复阅读。
  • 作者认为与原书相比,翻译版本的书籍有时能提供不同的阅读体验。
  • 俄罗斯文化中,有些翻译作品被认为超越了原作。
  • 以色列诗人 Alterman 翻译的莎士比亚作品在以色列并不被视为杰作。
  • 《指环王》在以色列有两个翻译版本,旧版被认为更优美,新版则更学术。
  • 翻译作品的情感冲击力在母语中更为强烈。
  • 有些翻译作品因为译者的才华而具有独特的魅力。
  • 苏联时期,许多才华横溢的作家因审查而无法写作,转而成为翻译者。
  • 有些翻译作品因为译者的努力而被认为是大胆的尝试。
  • 作者不喜欢翻译作品,更倾向于阅读原作。
  • 译者对自己翻译的希腊版 Neuromancer 感到不满意。
  • 作者使用 GPT 将希腊语故事翻译成英文。
  • 有些读者通过 BBS 和 TXT 文件接触并阅读英文书籍。
  • 作者因阅读 Neuromancer 而对英语产生了兴趣,并计划重新阅读。

Zig’s New Async I/O #

https://kristoff.it/blog/zig-new-async-io/

Loris Cro 在其个人网站上发表了一篇关于 Zig 编程语言中异步 I/O 新特性的文章。文章发布于 2025 年 7 月 13 日,阅读时间大约 13 分钟。

文章首先指出“异步性不是并发性”。在 Zig 2026 年的路线图直播中,Andrew 宣布了一种新的 I/O 处理方式。文章接下来介绍了这种新设计的 I/O 接口,这是 Zig 语言中最显著的变化之一。新的 I/O 接口由调用者提供,类似于之前已经使用的内存分配器(Allocator)。文章通过代码示例展示了新旧 Zig 语言在 I/O 操作上的不同。

文章强调,这种变化的主要影响是程序的作者现在可以决定具体的 I/O 实现,并且可以将这个实现注入到依赖的代码中。Io 接口不仅负责 I/O 操作,还负责并发操作,因为并发操作可以与 I/O 操作交织在一起,尤其是在事件循环的情况下。如果代码正确地表达了操作的并发性,那么 Io 实现就有机会引入并行性。

文章通过一个代码示例展示了如何利用 Io 接口实现并发写入两个不同文件的操作。这个示例展示了如何通过 Io 接口实现并发性,即使在阻塞 I/O 的情况下,代码也能正确工作,因为 io.async 会立即调用 saveFile 函数,而 Future.await 将变成一个空操作。

文章还提到了在处理异步操作时,需要分别使用 awaittry,而不是一次性完成,因为如果 try a_future.await(io) 失败,我们将无法等待 b_future。文章解释了 Future 资源需要被释放,因此未能等待一个 Future 是一个编程错误。

文章进一步讨论了如何通过引入取消支持来改进代码。通过使用 Future.cancel()Future.await(),我们可以在不引入额外复杂性的情况下实现取消功能,并且能够直观地使用 try

最后,文章介绍了 Zig 标准库提供的几种 I/O 实现,包括基本的阻塞 I/O 操作实现,以及包含事件循环的实现,如线程池和绿线程。文章还提到了栈 less 协程的实现,这将依赖于特殊的函数调用约定和将函数体重写为不需要显式栈的状态机。

文章的设计目标是使代码可重用性,这是 Zig 语言的主要目标之一。文章指出,当涉及到异步 I/O 时,代码可重用性总是一个棘手的问题。文章引用了一篇著名的博客文章“你的函数是什么颜色?”来进一步讨论这个话题。


HN 热度 347 points | 评论 251 comments | 作者:afirium | 1 day ago #

https://news.ycombinator.com/item?id=44545949

  • Zig 的新异步 I/O 并没有完全解决函数着色问题,只是将 IO 和非 IO 函数区分开来。
  • 调用函数的方式取决于其颜色,尽管看起来像普通函数调用,但实际上需要提供 IO 参数。
  • 只有 IO 函数才能从其他 IO 函数中调用,这与之前的红色函数规则相似。
  • IO 函数调用起来更痛苦,这个观点仍然适用。
  • 一些核心库函数是红色的,这与 Zig 无关,Rust 也面临同样的问题。
  • Zig 的实现并没有真正解决函数需要上下文(如异步执行器、认证信息等)的问题。
  • Zig 的异步 I/O 实现在抽象使用和实现方面做得很好,这是 Rust 所失败的。
  • Io 不是特定于异步的,而是任何需要执行 IO 操作(如读写文件、休眠等)时都需要的。
  • 在实践中,大多数代码库都可以访问 Io,只有进行纯计算的叶函数不需要它。
  • 如果一个函数开始需要执行 IO,通常不需要将其作为参数传递,而是可以通过应用状态类型轻松获取。
  • 尽管理论上仍然存在函数着色,但实际上通过给大多数函数提供 Io 访问权限来解决这个问题。
  • AllocatorIo 一起传递并不会引起函数着色的烦恼,因为通常总是可以轻松访问到它们。
  • 依赖编译器/标准库默默切换异步实现可能会导致隐藏的控制流问题。
  • 这种方法只解决了异步与非异步函数的“可见”着色问题,但没有处理阻塞与非阻塞函数的问题。
  • Io 的设计限制了异步操作集,只支持 Io 虚表中的操作,这可能会迫使它包含不完全是 I/O 的操作,如互斥锁。
  • 分配器在请求或释放内存时可能会让出操作系统,但这并不属于可以导致程序在不同线程间切换的“yield”范畴。

Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model #

https://github.com/MoonshotAI/Kimi-K2

这个网页是关于 Moonshot AI 团队开发的 Kimi K2 大型语言模型系列的介绍。

  1. 模型介绍

    • Kimi K2 是一个先进的混合专家(MoE)语言模型,拥有 32 亿激活参数和 1 万亿总参数。该模型使用 Muon 优化器进行训练,在前沿知识、推理和编码任务上表现出色,同时针对代理能力进行了精心优化。
  2. 模型特点

    • 大规模训练:在 15.5T 的 token 上预训练了 1T 参数的 MoE 模型,训练过程中没有不稳定现象。
    • MuonClip 优化器:在前所未有的规模上应用 Muon 优化器,并开发了新的优化技术来解决扩展过程中的不稳定性。
    • 代理智能:特别设计用于工具使用、推理和自主问题解决。
  3. 模型变体

    • Kimi-K2-Base:基础模型,适合想要完全控制微调和定制解决方案的研究人员和构建者。
    • Kimi-K2-Instruct:最适合即插即用的通用聊天和代理体验的后训练模型。它是一个反射级别的模型,没有长时间的思考。
  4. 模型总结

    • 架构:混合专家(MoE)
    • 总参数:1T
    • 激活参数:32B
    • 层数(包括密集层):61
    • 密集层数:1
    • 注意力隐藏维度:7168
    • MoE 隐藏维度(每个专家):2048
    • 注意力头数:64
    • 专家数:384
    • 每个 token 选择的专家数:8
    • 共享专家数:1
    • 词汇量:160K
    • 上下文长度:128K
    • 注意力机制:MLA
    • 激活函数:SwiGLU
  5. 评估结果

    • 指令模型评估结果显示 Kimi K2 在多个基准测试中的性能,包括编码任务、工具使用任务和数学 STEM 任务,以及一般任务。Kimi K2 在某些基准测试中达到了全球最佳(SOTA)。
    • 基础模型评估结果显示 Kimi K2 Base 在多个基准测试中的性能,包括一般任务。

网页还提到了一些评估结果的细节,例如,Kimi K2 在 SWE-bench Verified 测试中达到了 65.8% 的 pass@1,并且在多语言测试中达到了 47.3% 的 pass@1。此外,还提到了一些评估结果的数据点被省略,因为评估成本过高。


HN 热度 347 points | 评论 2 comments | 作者:ConteMascetti71 | 1 day ago #

https://news.ycombinator.com/item?id=44543508

  • Kimi K2 在处理编程问题时表现良好,但需要昂贵的硬件支持,适合部署而非本地使用。
  • 使用 4bit 量化可以在一些高性能设备上实现合理速度,但仍需大量资源。
  • 目前可以通过云服务商运行 Kimi K2,且成本低于竞争对手,如 Claude 4 Sonnet。
  • 有用户认为 Claude 4 Sonnet 的响应速度过慢,愿意支付更高费用以获得更快的云推理。
  • 某些模型在简单任务上可能表现不佳,而 Kimi K2 在代码生成方面较 Claude 更简洁易读。
  • 对于复杂的交互式工作流,低速率的响应可能无法满足需求。
  • Kimi K2 展现出非机器人化的个性,语气更加直接和精确。
  • 有观点认为,尽管大模型对家庭用户来说运行成本高,但对企业用户和有隐私需求的用户依然具有吸引力。
  • 模型蒸馏的成本和所需硬件资源尚不明确。
  • 对于将 Kimi K2 与其他模型的比较,用户期待其在推理能力和处理复杂任务方面的表现。

How does a screen work? #

https://www.makingsoftware.com/chapters/how-a-screen-works

网页标题:如何屏幕工作?

摘要:

数字显示屏一直是计算机领域的无名英雄。从电子枪到微小的电晶体,显示屏技术经历了长足的发展。本文将探讨屏幕的工作原理,包括以下几个方面:

  1. 屏幕的工作原理:

    • 从电子枪到微小的电晶体,显示屏技术经历了长足的发展。显示屏通过控制像素点的亮度和颜色来显示图像。
  2. 触摸屏技术:

    • 触摸屏技术允许用户直接与屏幕上的内容进行交互。本文将介绍触摸屏的工作原理和不同类型的触摸屏技术。
  3. 图像是什么?

    • 图像是由像素点组成的视觉信息。本文将探讨图像的基本概念和构成。
  4. 色彩空间、模型和色域:

    • 色彩空间是描述颜色的一种方式,不同的色彩模型和色域决定了颜色的表示和显示方式。本文将解释这些概念及其重要性。
  5. 为什么计算色彩对比度如此困难?

    • 色彩对比度的计算涉及到多种因素,本文将探讨这些因素以及为何计算色彩对比度是一个复杂的问题。
  6. 渐变和感知均匀性:

    • 渐变和感知均匀性是图像处理中的重要概念。本文将讨论它们在图像设计和显示中的作用。
  7. 混合模式背后的数学:

    • 图像混合模式涉及到复杂的数学计算。本文将揭示这些计算背后的数学原理。
  8. 字体和矢量图形:

    • 字体和矢量图形是数字设计中的基础元素。本文将介绍它们的工作原理和特点。
  9. 绘制曲线:

    • 曲线在图形设计中扮演着重要角色。本文将探讨如何绘制曲线以及相关的技术。
  10. 光栅化和抗锯齿:

    • 光栅化是将矢量图形转换为像素图形的过程。本文将讨论光栅化和抗锯齿技术。
  11. SVG 视图框:

    • SVG 是一种基于 XML 的矢量图形格式。本文将介绍 SVG 视图框的概念和应用。
  12. SVG 路径和滤镜:

    • SVG 路径和滤镜是 SVG 图形中的重要元素。本文将探讨它们的功能和使用方法。
  13. 用形状进行数学运算:

    • 形状可以用于数学运算,本文将介绍如何利用形状进行数学计算。
  14. 3D 和着色器:

    • 3D 图形和着色器是现代图形处理的关键技术。本文将探讨 GPU 的工作原理和着色器的基本概念。
  15. 什么是着色器?

    • 着色器是用于渲染 3D 图形的程序。本文将解释着色器的工作原理和重要性。
  16. 有符号距离场:

    • 有符号距离场是一种用于 3D 图形的技术。本文将介绍这种技术及其应用。
  17. 模糊、噪声和其他效果:

    • 模糊、噪声等效果在图像处理中扮演着重要角色。本文将探讨这些效果的实现方法。
  18. 投影视图、光线追踪和光线步进:

    • 投影视图、光线追踪和光线步进是 3D 图形渲染的关键技术。本文将讨论它们的工作原理。
  19. 3D 投影:

    • 3D 投影是将 3D 图形转换为 2D 图像的过程。本文将介绍 3D 投影的基本概念和方法。
  20. 人工智能和机器学习:

    • 人工智能和机器学习是现代技术的重要组成部分。本文将探讨机器学习与神经网络的关系,以及大型语言模型的工作原理。
  21. 生成图像:

    • AI 技术可以用于生成图像。本文将介绍 AI 如何生成图像以及背后的技术。
  22. AI 基础设施:

    • AI 基础设施是支持 AI 技术运行的基础。本文将探讨 AI 基础设施的构成和工作原理。
  23. 压缩和数据:

    • 数据压缩是信息处理中的关键技术。本文将介绍字节、二进制、十六进制和十进制的概念,以及熵、无损和有损压缩的区别。
  24. 加密技术:

    • 加密技术用于保护数据安全。本文将探讨加密技术的原理和应用。
  25. 图像压缩:

    • 图像压缩是减少图像文件大小的技术。本文将介绍图像压缩的方法和标准。
  26. CRDTs:

    • CRDTs 是一种数据同步技术。本文将解释 CRDTs 的工作原理和应用场景。
  27. 网络和 Web:

    • 网络和 Web 技术是现代互联网的基础。本文将探讨浏览器的工作原理、客户端与服务器的关系、DNS 查询的流程以及网络协议。
  28. 序列化和流:

    • 序列化和流是数据传输和处理的关键技术。本文将介绍这些技术的基本概念和应用。
  29. 缓存:

    • 缓存是提高网络性能的重要技术。本文将探讨缓存的工作原理和作用。
  30. 编译器和解释器:

    • 编译器和解释器是代码运行的基础。本文将介绍代码如何运行,以及编译器和解释器的区别。
  31. 代码性能:

    • 代码性能是软件开发中的重要考虑因素。本文将探讨影响代码性能的因素。
  32. 其他主题:

    • 本文还将涉及正则表达式、二维码、指纹识别器和量子计算等其他技术主题。

以上摘要涵盖了网页中提到的主要内容,提供了对屏幕工作原理和相关技术的全面介绍。


HN 热度 307 points | 评论 64 comments | 作者:chkhd | 10 hours ago #

https://news.ycombinator.com/item?id=44550572

  • 现代显示器并非逐行绘制图像,而是同时点亮每个像素,刷新整个显示器。
  • 通过慢动作录制可以实验性地证实屏幕通常是逐行刷新的。
  • 有人觉得文章中的解释和图表非常清晰直观,给人留下深刻印象。
  • 有人希望作者能为所有科学和数学教科书编写教材,以帮助学生更好地理解学术知识。
  • 有人赞扬作者的沟通能力,将其与 Bartosz Ciechanowski 的工作相提并论。
  • CRT 显示器因其模拟技术而被认为是比数字继任者更酷的技术。
  • 活动矩阵平板显示器在 90 年代出现时被认为是非常酷的技术。
  • LCD 显示器的死像素曾经是一个大问题,但现在已经不是了。
  • CRT 显示器仍然具有一定的魔力,图像实际上是不存在的,是一个幻觉。
  • 慢动作视频可能会误导人,因为荧光粉的发光时间比视频中显示的要长。
  • 荧光粉的衰减速度非常快,因此需要高刷新率和高亮度的 LCD/OLED 屏幕才能近似 CRT 的运动清晰度。
  • CRT 显示器在运动清晰度方面优于现代显示器,因为它们显示物体的时间只是帧持续时间的一小部分,而 LCD/OLED 显示器则在整个帧期间显示图像。
  • 有人喜欢新的 240Hz 4K OLED HDR 显示器,认为它们正在接近完美,尤其是通过 DisplayPort 传输的未压缩 4K HDR 数据速率令人震惊。

Arizona resident dies from the plague #

https://www.independent.co.uk/news/health/arizona-plague-death-cases-b2787325.html

美国亚利桑那州居民死于鼠疫,症状出现不到 24 小时后去世 在弗拉格斯塔夫附近草原犬鼠大量死亡的情况下,北亚利桑那州有一人因鼠疫去世,被送往医院时症状严重,同日死亡。尸检发现导致鼠疫的细菌——耶尔森氏菌。关于患者或其身份的更多细节尚未透露。这起病例发生在弗拉格斯塔夫东北部草原犬鼠大量死亡之后,这是鼠疫活动的典型警示信号,因为这些啮齿动物常携带感染的跳蚤。科科尼诺县官员正在调查与鼠疫有关的草原犬鼠死亡数量,他们正在与一名物业所有者合作收集跳蚤进行测试。

鼠疫在美国现代仍然罕见,美国疾病控制中心报告称,平均每年有七例人类病例,其中大多数发生在美国西部的农村地区,包括亚利桑那州北部以及新墨西哥州和科罗拉多州部分地区。

鼠疫有三种形式:腺鼠疫、败血性鼠疫和肺鼠疫,取决于感染是否影响淋巴结、血液或肺部。美国的大多数病例是腺鼠疫,通常通过感染的啮齿动物身上的跳蚤叮咬传播。根据克利夫兰诊所的数据,全球鼠疫病例每年大约有 1000 至 2000 例,美国大约报告七例。症状通常在感染后一周内开始,可能包括发热、寒战、淋巴结肿大、恶心和虚弱。

如果及时(理想情况下在症状出现后 24 小时内)使用抗生素治疗,腺鼠疫的生存率超过 90%。然而,如果没有治疗,死亡率可能会急剧上升。公共卫生官员敦促居民报告生病或死亡的草原犬鼠和其他啮齿动物,使用跳蚤控制产品对宠物进行处理,并在可能接触后出现发热或肿大腺体等症状时立即就医。


HN 热度 249 points | 评论 145 comments | 作者:Anon84 | 1 day ago #

https://news.ycombinator.com/item?id=44543368

  • 没有新闻报道说患者在出现症状后不到 24 小时内死亡,报道的是患者到达医院当天死亡。
  • 未经治疗的情况下,典型病程为 36 小时,所以 24 小时内死亡是完全正常的。
  • 该地区每年都会有几例鼠疫病例,通常不会很严重。
  • 鼠疫很容易通过草原犬鼠传播。
  • 草原犬鼠的群体根据是否携带鼠疫自然分隔。
  • 鼠疫的监测和分隔是由州一级的野生动物资源部门负责的。
  • 重新引入黑足鼬可能有助于减少鼠疫,因为它们捕食草原犬鼠。
  • 黑足鼬的重新引入可能会减少草原犬鼠的数量和密度,从而减少鼠疫的传播。
  • 鼠疫的传播通常是通过草原犬鼠身上的跳蚤,而不是草原犬鼠本身。
  • 人们可能会因为工作或爱好而接触到草原犬鼠,从而暴露于鼠疫。
  • 鼠疫的传播通常涉及直接接触草原犬鼠。
  • 鼠疫的传播通常与草原犬鼠的管理有关,而不是普通民众。
  • 每年大约有一人死于鼠疫。
  • 鼠疫的传播可能涉及跳蚤从老鼠传播到宠物。
  • 鼠疫的传播可能涉及草原犬鼠和其他啮齿动物。
  • 与过去相比,现代医学的进步使得我们对抗鼠疫有了更多的生存机会。

The North Korean fake IT worker problem is ubiquitous #

https://www.theregister.com/2025/07/13/fake_it_worker_problem/

这篇文章讨论了北韩假 IT 工人问题,这是一个普遍存在的现象,许多公司在招聘过程中都可能遇到虚假简历或冒名顶替者。Mandiant Consulting 的 CTO Charles Carmakal 在一次威胁情报圆桌会议上表示,几乎所有他交谈过的财富 500 强公司的首席信息安全官都承认他们面临北韩 IT 工人问题,甚至连 Mandiant 的母公司谷歌也未能幸免。谷歌云安全工程高级总监 Iain Mulholland 和 Snowflake 的首席信息安全官 Brad Jones 也证实了这一点。

这些主要源自北韩的骗局,或至少将资金回流到平壤的骗局,据司法部去年称,在过去六年中至少给美国企业造成了 8800 万美元的损失。在某些情况下,这些骗子利用内部访问权限窃取专有源代码和其他敏感数据,然后以泄露公司数据为威胁,向雇主索要赎金。

随着美国公司对假 IT 工人问题越来越警觉,这些求职者越来越多地将目标对准欧洲雇主。几乎所有最近几个月与《The Register》交谈的高管都表示,他们看到了大量这类申请者申请空缺职位,大多数是工程和软件开发职位,而且全部是远程工作。在某些情况下,骗子甚至使用深度伪造视频试图获得工作,包括在一家使用 AI 来发现代码漏洞的安全公司。Vidoc Security Lab 的联合创始人 Dawid Moczadło 在之前的采访中表示,如果他们几乎骗过了他这个网络安全专家,那么他们肯定也骗过了一些人。

Socure 的首席增长官 Rivka Little 表示,Socure 在过去几个月里看到了大量假候选人申请开放职位,这似乎是一个特别讽刺的选择,因为 Socure 向其他公司提供身份验证服务。对于一个高级工程职位,Socure 过去在三四个月内会收到 150 到 200 份申请,但最近这个数字在两个月内跳升到了超过 1999 名所谓的求职者。至少有一些额外的申请者有着奇怪的可疑档案。

Socure 的招聘团队在与一些申请者进行视频会议时,注意到了一些奇怪的现象:非常西方化的名字,如 James Anderson,与东亚面孔和带口音的英语搭配,数量远高于预期。Little 的团队还注意到了一些其他异常:新电子邮件地址、电话号码与声称的地理位置不匹配、所有内容都通过 VPN 路由,以及教育背景无法核实。

Little 将一些求职者的问题输入到 ChatGPT 中,并保存了聊天机器人的回答,以便在面试中参考。如果求职者的回答与 ChatGPT 的回答接近,那么他们就会知道有问题,而且确实发生了这种情况。尽管如此,Little 还是真心喜欢这位候选人,他很和蔼,是个好人,讲笑话,没有任何让她不想与他合作的地方。

Little 曾在银行领导一个反欺诈项目,也在 Socure 领导人力资源部门,但很少有人力资源或招聘经理同时接受过网络安全和身份管理培训——他们的工作是评估人才,而不是识别潜在的安全风险。Netskope 的首席信息安全官 James Robinson 表示,他的云安全公司也收到了虚假工人申请。他认为每个首席信息安全官都在挣扎:这是一个首席信息安全官的问题吗?还是一个组织问题,实际上是一个更早的人力资源问题?以及如何与人力资源合作?安全人员非常了解如何进行调查,但他们不一定了解在面试中可以和不可以问什么。


HN 热度 158 points | 评论 166 comments | 作者:rntn | 12 hours ago #

https://news.ycombinator.com/item?id=44549762

  • LinkedIn 被黑客攻击,导致真实个人资料被篡改,可能会被误认为是北韩假 IT 工作者。
  • 美国公司对员工身份验证严格,欧洲雇主则较少远程工作机会,因此北韩假 IT 工作者问题较少。
  • 欧洲雇主通常要求面试和掌握当地语言,这增加了北韩假 IT 工作者的难度。
  • 北韩假 IT 工作者使用 KVM 设备来伪装成其他国家的远程工作者。
  • KVM 设备通过模拟物理显示器和键盘来绕过安全检测。
  • 要求员工第一周必须亲自到岗可以作为防止北韩假 IT 工作者的一种方法。
  • 强制第一周亲自到岗会限制公司的人才选择。
  • 进入大多数国家需要签证,这可能需要数月时间申请和等待。
  • 德国公司通常会帮助解决签证问题,以便外国员工尽快开始工作。
  • 单方面宣布结束朝鲜战争并不能解决问题,北韩政权依赖战争状态来维持。
  • 北韩不会接受和平,也不会遵守和平协议。
  • 北韩假 IT 工作者可能会因为要求批评金正恩而暴露身份。
  • 要求批评政治人物可能会让真正的求职者感到不适,不愿意合作。
  • 政治问题不应该成为工作面试的一部分,除非提供高额报酬。

Hacking Coroutines into C #

https://wiomoc.de/misc/posts/hacking_coroutines_into_c.html

这篇文章讲述了作者在嵌入式软件开发中对状态机的质疑和探索。作者曾经参与一个团队开发嵌入式软件,软件中使用了大量的状态机,这些状态机分布在多个函数中。虽然这种架构在没有操作系统的嵌入式开发中很常见,但作者开始思考是否有更清晰的控制流表达方式。

作者提到,虽然状态机工作正常,但理解和维护它们却常常令人头疼。它们缺乏线性流程,需要在多个轮询函数中处理标志、状态和转换。作者思考,如果能像顺序程序一样编写逻辑,等待事件并在中断处恢复执行,会不会更简单?

由于项目不允许使用实时操作系统(RTOS),传统的使用线程或阻塞系统调用来管理并发的方法不可行。但作者知道必须有一个折中方案。那时,作者已经在 Python、JavaScript、Dart 和 Rust 等语言中使用过协程,它们允许在不依赖线程的情况下暂停和恢复执行,提供一种合作式多任务处理。

作者意识到,这种协程模式可能是解决他们问题的最佳方案——提供并发而不要求操作系统。在深入研究基于协程的解决方案之前,作者回顾了一个小型示例,说明了问题。他们想要实现一个用户可控周期的 LED 闪烁器,初始周期为 2 秒,用户可以通过长按按钮随时更改周期。当按钮释放时,LED 应以新周期(即按钮按住时间的一半)重新开始闪烁周期。

为了模拟这种行为,可以使用两个简单的状态机。第一个状态机 led_blinker 包含两个状态:LED_ON 和 LED_OFF。系统在延迟 p/2 后从 LED_ON 转换到 LED_OFF,反之亦然。如果从第二个状态机接收到 resetLed 事件,led_blinker 会立即转换到 LED_OFF 状态,无论其当前状态如何。第二个状态机 button_record 也有两个状态:WAIT_BUTTON_PRESSED 和 WAIT_BUTTON_UNPRESSED。它在初始状态下等待用户按下按钮,一旦按钮被按下,它记录当前时间 t_s 并转换到 WAIT_BUTTON_UNPRESSED 状态。在这个状态下,它等待用户释放按钮。当按钮被释放时,它捕获当前时间 t_e,计算新的半周期为 p/2 = t_e - t_s,发出 resetLed 事件,并返回到 WAIT_BUTTON_PRESSED 状态。

文章接着提供了基于轮询的 Arduino 实现代码,以及使用 FreeRTOS 的实现代码。作者认为,使用 FreeRTOS 的方法更容易阅读和理解,也消除了预先定义离散状态机设计的需要——可以直接将逻辑表达为顺序代码。

最后,作者提到了他们基于宏的协程实现,其任务实现的结构与 FreeRTOS 方法非常相似。文章以实现 button_recorder 函数的代码片段结束。


HN 热度 151 points | 评论 39 comments | 作者:jmillikin | 23 hours ago #

https://news.ycombinator.com/item?id=44546640

  • Protothreads 是一种轻量级的协程实现方式,可以在 C 语言中实现无依赖的协程。
  • 通过使用 GCC 或 Clang 的"labels as values"扩展,可以避免使用 switch 语句和相关比较,实现更简洁快速的协程。
  • proto_activities 提供了一种更简洁的方式来定义协程,自动创建结构体来保存状态。
  • 在嵌入式软件中,如果只有一个协程实例,可以使用函数内的静态变量来实现协程,这样代码会稍微快一些。
  • 状态机在某些情况下是必要的,但它们通常是写一次就不再读的(难以阅读和修改),因此最好保持简单和数量少。
  • 状态机的问题在于它们很难模块化,添加或分解状态比预期的工作量要大。
  • 状态机和协程可以解决非线性和并发问题,但有时过于努力地用一个解决方案同时解决两个问题可能会导致问题。
  • 使用 FreeRTOS 的合作调度器可以作为没有操作系统时的一个解决方案。
  • 在没有 RTOS 的情况下,项目最终可能会实现一个类似 RTOS 的近似方案。
  • 使用 PWM 外设(或如果没有 PWM 外设,则使用定时器中断)和引脚变化中断,CPU 几乎 100% 的时间都处于停止状态,可能是一个更简单的解决方案。
  • 不应该使用中断来处理按钮输入,因为开关抖动会导致处理器被无用的中断轰炸。人机界面可以被轮询,同时保持响应性。