第343期 — 2025-11-22

在浏览器中阅读

周e信

扫描二维码关注微信公众号

Node.js

Checkout.com 被黑,拒绝支付赎金,而是将赎金捐赠给安全实验室🔗

Checkout.com遭到名为“ShinyHunters”的犯罪团伙的勒索攻击。攻击者访问了Checkout.com在2020年及之前使用的旧的第三方云文件存储系统,获取了部分数据,可能影响少于25%的现有商户,涉及内部运营文档和商户入职材料。Checkout.com强调,此次事件未影响其支付处理平台,商户资金和银行卡号没有被访问。Checkout.com承认因未妥善停用该旧系统而负有责任,并表示歉意,并已开始联系受影响的商户,同时与执法部门和监管机构合作。Checkout.com明确拒绝支付赎金,并计划将原本用于支付赎金的资金捐赠给卡内基梅隆大学和牛津大学网络安全中心,用于支持打击网络犯罪的研究。

Mariano Albera

Antoine du Hamel

Javascript

如何成为编译器工程师🔗

文章围绕 “如何成为编译器工程师” 展开,用通俗的方式讲解了该职业的核心工作(将程序员代码转换为机器语言,含代码优化、适配新特性等),强调入行无需一开始全能,可从写迷你编译器、修改现有编译器等小目标起步,同时明确了需掌握的核心技能(C/C++、LLVM、编译核心理论、实操能力),还给出了 “先学入门教程、参与开源项目练手” 的学习路径和 “聚焦相关团队、突出项目经验” 的求职建议,鼓励想入行的人不用畏惧理论难度,边做边学、保持兴趣即可逐步成长。

Rona Wang

Damar Berlari

Yt-dlp:完整支持 YouTube 下载现在需要外部JavaScript运行时🔗

yt-dlp 项目宣布,为了完整支持 YouTube 下载,从 2025 年 11 月 12 日发布的 2025.11.12 版本开始,需要外部 JavaScript 运行时环境(例如 Deno)。

yt-dlp

前端

Will Morrison

Sindre Sorhus

我认为没人希望 Firefox 中出现 AI,Mozilla🔗

Mozilla正在为Firefox开发一个名为“Window AI”的内置AI助手,将其作为继普通和隐私浏览模式之外的第三种浏览模式。用户可以选择是否启用此功能,并且拥有控制权。

然而,在Mozilla的论坛上,参与“塑造”该计划的用户几乎一致反对这一想法,并要求Mozilla停止在Firefox中加入AI功能。作者不确定这些负面反应是否代表了大多数Firefox用户的意见。

作者认为Mozilla试图把自己定位为另一个支持AI的浏览器,与大型科技公司和资金充足的初创公司竞争,这些公司的用户对在浏览器中添加AI功能的抵触情绪较低。 Mozilla试图在拒绝AI和想要生成式AI功能的用户之间取得平衡,以满足所有人的需求。

如果用户不喜欢AI功能,可以选择使用LibreWolf、Waterfox或Zen Browser等不包含AI的Firefox分支。

Rodrigo Ghedin

你可能不知道的Chrome的Devtools可做的六件事🔗

第一部分已详细说明的 3 个技巧 用 console.time() 和 console.timeEnd() 计时:给代码片段计时超方便,比如想知道某个函数或操作花了多久,先写 console.time("命名") 启动计时,结束时用 console.timeEnd("同名"),控制台会直接显示耗时,排查定时器异常、代码执行慢的问题很实用。 监听 DOM 元素变化并断点:在 Elements 面板右键选中某个网页元素,选 “Break On”(断点),再选想要监听的类型(比如元素修改、属性变化、节点删除),之后只要这个元素被修改,代码就会暂停,能精准找到改动它的 JavaScript 代码。 监控任意函数调用:用 monitor(函数名) 就能给任意函数加监听,比如 monitor(sum),之后每次调用 sum() 函数,控制台都会显示它的调用参数,调试第三方脚本或自己的代码时,能清楚知道函数什么时候被调用、传了什么值(仅支持 Chrome)。 第二部分预告的 3 个技巧 WYSIWYG 式编辑任意网站:直接在网页上可视化编辑内容,不用改代码,像用 Word 一样直接修改文字、图片,方便快速预览修改效果。 记录并回放用户操作:能录下鼠标点击、输入文字等用户操作,之后可以重复回放,调试需要特定操作流程才能触发的 bug 特别高效。 单独限制特定网络请求:不用全局限制网络速度,而是精准针对某类或某个网络请求(比如某张图片、某个接口)进行节流,模拟该资源加载慢的场景,测试网页兼容性。

Rachel Kaufman

Fuma Nama

Tooltip标签根本就没必要🔗

这篇文章认为设计系统不应提供单独的通用 <Tooltip> 组件(并非否定 tooltip 本身的价值),因为这类低层级组件容易被误用,导致键盘用户无法访问提示、提示用法混乱(要么藏在无标识文本中,要么必要图标缺提示)等问题,转而建议将 tooltip 功能融入 <Button> ``<IconButton> 等更高层级的特定组件,或新增 <InfoIcon> <InfoText> 这类专用组件,通过限制用法来保障统一的用户体验和无障碍访问。

Dominik Dorfmeister

移动端

Android 开发者验证:提前体验开始🔗

谷歌宣布Android开发者验证的早期访问计划启动,旨在加强Android生态系统的安全性。

起因是,为了应对日益猖獗的网络诈骗和恶意软件攻击,谷歌需要确保软件背后有一个真实且可追溯的身份。开发者验证通过要求开发者使用真实身份分发软件,提高了恶意攻击的成本和难度。

谷歌听取了社区的反馈,并针对学生、爱好者以及高级用户调整了策略:

  • 学生和爱好者: 将提供专门的账户类型,允许他们将作品分发给有限数量的设备,无需完全通过验证要求。
  • 高级用户: 将创建一个新的高级流程,允许他们接受安装未验证软件的风险。该流程会包含清晰的警告,确保用户充分理解风险,并将选择权交给用户。

目前,谷歌已经开始邀请仅在Google Play之外分发的开发者参与Android Developer Console中的开发者验证早期访问计划。Google Play开发者的邀请也将很快发布。

Matthew Forsythe

人工智能

Nano Banana 可以进行提示工程,以实现细致的 AI 图像生成🔗

这篇文章总结了作者对Google的图像生成模型Nano Banana(即Gemini 2.5 Flash Image)的评测。作者认为,Nano Banana具有极强的prompt理解能力,即使是很复杂的prompt也能很好地执行。

Nano Banana的使用方法: * 可以通过Gemini应用或Google AI Studio免费使用,但生成的图像带有水印。 * 开发者可以通过Gemini API使用,价格合理。作者还开源了一个Python库gemimg,方便开发者调用API。

Max Woolf

九种不同的AI创建的世界时钟🔗

AI World Clocks 是一个由 Brian Moore 创建的项目,每分钟都会展示一个新的模拟时钟。 这些时钟是由九种不同的人工智能模型生成的。 每个模型被允许使用 2000 个 token 来生成时钟的 HTML/CSS 代码。 提示词是:创建一个显示${time} 的模拟时钟的 HTML/CSS 代码。 可以包含数字或数字符号,并有一个 CSS 动画的秒针。 使其具有响应性,并使用白色背景。 仅返回 HTML/CSS 代码,不包含 markdown 格式。这个想法灵感来自 Matthew Rayfield。该网站的功能是不断加载和生成人工智能时钟。

Brian Moore

运维

FFmpeg致谷歌:资助我们,否则停止发送错误报告🔗

这篇文章讨论了开源项目FFmpeg与科技巨头Google之间关于漏洞报告和资金支持的争议。

核心问题是,Google使用AI发现FFmpeg中的漏洞,然后期望依靠志愿者来修复这些问题,而FFmpeg的开发者们认为这是不公平的,因为Google从FFmpeg中获益,却没有提供足够的资金支持。

FFmpeg指出,许多开源项目都面临类似的问题,志愿者维护者难以承受来自大型企业的安全压力。Google的漏洞披露政策,即在发现漏洞后一周内公开,更增加了维护者的压力。

虽然Google提供了漏洞奖励计划,但FFmpeg认为该计划的限制太多。一些人认为,公开漏洞信息是好事,有利于互联网安全,但FFmpeg团队认为,在缺乏足够资源的情况下,这种做法是不可持续的。

文章最后呼吁对关键开源项目提供更多支持,以避免潜在的安全漏洞,并以libxml2维护者因不堪重负而辞职为例,强调了问题的紧迫性。

Steven J. Vaughan-Nichols

其他

我不是facebook的那个扎克伯格🔗

这篇文章介绍的是印第安纳州的一位名叫 Mark S. Zuckerberg 的破产律师,他并非 Facebook 创始人 Mark Zuckerberg。由于同名,他经常收到来自陌生人的困惑邮件,求助技术支持或索要钱财。

文章列举了这位律师因为同名而遇到的各种困扰,包括:

  • 被华盛顿州政府因身份混淆起诉
  • Facebook 账号多次被禁用
  • Facebook 账号不断被黑客攻击,需要频繁重置密码
  • 晚上必须关机以避免过多的通知
  • 开设 Facebook 账号时被要求提供多种身份证明
  • 因 Facebook 诈骗而被大量陌生人电话和邮件轰炸
  • 每天收到 100+ 好友请求
  • 收到包含投诉、建议或要求“改进 Facebook”的包裹和信件
  • 每天收到愤怒的人的电话,要求技术支持
  • 因使用假名而被 Nextdoor 应用移除
  • 在 Messenger 应用上收到死亡威胁和骚扰
  • 收到 Venmo 付款请求和陌生人的募捐请求

尽管如此,这位律师仍然幽默地表示,他希望 Facebook 创始人一切都好,并希望能在“Mark Zuckerberg 破产”的搜索结果中占据主导地位,如果 Facebook 创始人需要在印第安纳州申请破产,他很乐意提供帮助。他的破产律师事务所在印第安纳波利斯、安德森、布卢明顿、哥伦布、埃文斯维尔、特雷霍特和文森斯等地设有办事处。

Mark S. Zuckerberg

法律意义上被赋予“人”的地位的非人类实体🔗

文章探讨了法律意义上被赋予“人”的地位的非人类实体,并列举了三个例子:

  1. 船只: 历史上,船只因其流动性,在法律上难以追究责任。因此,中世纪法院和后来的英国、美国海事法赋予船只有限的法律人格,使其可以被扣押财产,以便对其错误行为进行惩罚。船只拥有诸如提供保证金和接受审判等权利。此外,如果船只A成功救援了遇险的船只B,船只A有权获得救助报酬,这被称为“救助权”。

  2. 旺格努伊河: 2017年,新西兰议会通过法案,赋予旺格努伊河“法律人格”,使其拥有法律人所享有的一切权利、义务和责任。这一法案旨在解决自1930年代以来的争端,因为毛利部落认为殖民政府支持的轮船工业和矿产开采破坏了这条河流。该法案拨款用于河流的恢复,并指定两位监管人(一位来自政府,一位来自毛利部落)来代表河流的利益。

  3. 罗摩神: 在印度法律中,印度教神祇及其神像被认为是“法人”,可以拥有土地并在法庭上捍卫自己的利益。英国殖民统治时期,寺庙拥有大量土地和财富,管理者需要解决诸如“谁拥有财产”的实际问题。最终,孟买高等法院在1887年承认神祇本身是法人,并由“next friends”代表神祇。最近,在阿约提亚的一块有争议的土地案件中,印度最高法院将土地判给了罗摩神,并成立了一个信托来管理该财产。

文章指出,神祇的法律权利通常出现在不同信仰和教派之间争夺土地的情况下。 此外,赋予这些非人类实体的权利与人类拥有的权利并不完全相同。 例如,即使神祇被赋予某些法规权利,并不意味着它自动拥有宪法权利。

Ben Goldhaber

stickertop.art

总共27年的程序员职业总结🔗

1997 年至 2024 年共 27 年职业生涯,他先后在 Cavedog/Humongous Entertainment、微软、Valve、谷歌四家公司工作,核心专长是调试和性能优化而非开发新功能,期间靠人脉和面试能力获得工作机会,做出过一行代码提升游戏速度、发现 CPU 设计漏洞、优化服务器性能等关键贡献,还通过写技术博客提升职业影响力,经历过公司破产、职场霸凌、薪资谈判等情况,总结出 “持续学习、不长期滞留同一公司、平衡工作与生活” 等经验,2023 年妻子去世后重新评估人生,2024 年在谷歌任职十年后退休,享受自由生活。

Bruce Dawson

回顾电影玩具总动员的制作🔗

这篇文章回顾了《玩具总动员》在1995年上映时,CG动画与传统胶片技术的混合使用。

由于当时的计算机技术限制,虽然《玩具总动员》是第一部全CG动画长片,但为了能在影院放映,所有画面都必须转印到35毫米胶片上。Pixar的团队在制作时考虑到胶片的特性(例如绿色会变暗,红色保持真实),并相应地调整了数字色彩。

后来,随着技术进步,Pixar开始进行数字转录,直接从数字文件制作家庭影音版本。这导致《玩具总动员》的画面风格发生了变化,色彩更加鲜艳,颗粒感消失,与最初在影院看到的胶片版本有所不同。这种变化也发生在迪士尼90年代的动画作品中。

文章提出了一个问题:对于那些为35毫米胶片设计的数字电影,应该如何正确观看?现在在Disney+上看到的版本,色彩有时会显得过于原始。一些电影保护人士正在努力保存这些老电影的原始版本,以便人们有机会再次看到它们最初的样子。

文章的后半部分是新闻速递,提到了墨西哥电影《I Am Frankelda》的票房成功,宫崎骏仍在吉卜力工作室工作,台湾举办了卡雷尔·泽曼的电影展,尼日利亚动画电影《Vainglorious》受好评,以及其他一些国际动画产业的新闻。

Animation Obsessive

扫描二维码关注微信公众号
本期阅读量