2025 07 01 HackerNews

2025-07-01 Hacker News Top Stories #

  1. 安装俄罗斯键盘布局或在注册表中添加俄语参考可以防止某些勒索软件运行,以逃避在CIS成员国的执法审查。
  2. Gridfinity是一个模块化、开源的网格存储系统,用户可以通过3D打印自制部件,保持工作空间高效有序。
  3. HN用户分享了多个个人项目,包括食品化学物质检测平台、轻量级查询语言、开源温控器等,涵盖多个领域。
  4. 美国关键气象卫星数据的停止可能使飓风预报能力倒退数十年,科学家担忧这可能是特朗普政府的有意决定。
  5. 人工智能的进步主要源于数据的利用,而非新的算法或思想,数据的多样性和规模是关键驱动力。
  6. TokenDagger是一个高性能的分词器,比OpenAI的Tiktoken更快,适用于大规模文本处理。
  7. 通过联合体和编译时类型检查,在C语言中实现了类型安全的通用数据结构,但仍受限于C语言的泛型限制。
  8. Ensō 写作软件发布新版本
  9. 作者购买了一台Ampere Altra系统,用于ARM开发和实验,计划在其上安装Fedora 42并创建多个虚拟机实例。
  10. 研究发现个人护理产品会影响人类氧化场,抑制羟基自由基的生成,可能对室内化学和人类健康产生影响。

Many ransomware strains will abort if they detect a Russian keyboard installed (2021) #

https://krebsonsecurity.com/2021/05/try-this-one-weird-trick-russian-hackers-hate/

这篇文章讨论了一种对抗勒索软件的奇特网络防御技巧。KrebsOnSecurity 在推特上提到,几乎所有勒索软件都有一个内置的故障安全机制,以保护恶意软件的传播者:它们不会在已经安装了多种虚拟键盘(如俄罗斯或乌克兰语)的微软 Windows 电脑上安装。这一发现引发了读者的许多问题,因此作者认为有必要通过博客文章来探讨这一网络防御技巧。

文章提到,独立国家联合体(CIS)的国家在很大程度上与来自东欧的恶意软件排除名单相匹配。这些国家包括乌克兰和俄罗斯,这些国家的恶意软件通常禁止在本国电脑上安装恶意软件,以减少当地执法机构的审查和干预。例如,在俄罗斯,除非国内有人正式投诉成为受害者,否则当局通常不会对本国人发起网络犯罪调查。确保没有同伙在本国制造受害者,是这些犯罪分子避免国内执法机构注意的最简单方式。

DarkSide 勒索软件集团试图与对 Colonial Pipeline 的攻击保持距离,声称自己是“非政治性的”,不想参与地缘政治。然而,像 DarkSide 这样的数字勒索团伙非常小心地使他们的整个平台具有地缘政治性,因为他们的恶意软件被设计为只在世界某些地区工作。DarkSide 和其他许多恶意软件都有一个硬编码的不安装国家列表,这些国家是 CIS 的主要成员国——前苏联卫星国,这些国家大多与克里姆林宫保持着良好的关系。

文章指出,许多恶意软件会检查系统中是否存在这些语言之一,如果检测到,恶意软件将退出并失败安装。尽管安装这些语言并不能保证 Windows 电脑免受所有恶意软件的侵害,但作者认为,采用这种简单、免费的预防措施没有明显的坏处,除了可能感到一种屈服的感觉。最糟糕的情况是,你不小心切换了语言设置,所有的菜单选项都变成了俄语。

文章还提到,如果足够多的人这样做,短期内可能会保护一些人,但更重要的是,从长远来看,这迫使俄罗斯黑客做出选择:冒险失去法律保护,还是冒险失去收入。如果许多人这样做,俄罗斯黑客最终将面临与西方防御者相同的困难——很难区分国内机器和伪装成国内机器的外国机器。

最后,文章提到了另一种抗恶意软件的方法:在 Windows 注册表中添加条目,指定系统正在运行虚拟机(VM)。一些恶意软件作者传统上配置他们的恶意软件在检测到运行在虚拟环境中时停止安装,以阻止杀毒软件和安全公司的分析。但这种禁止不再那么常见,特别是因为许多组织已经过渡到日常使用的虚拟环境。尽管如此,作者还是喜欢每个人添加 CIS 国家列表中的语言的想法,并提供了一个点击即可使用的两行 Windows 批处理脚本,该脚本在恶意软件检查的特定 Windows 注册表键中添加了俄语参考。这个脚本实际上允许用户的 Windows PC 看起来像是安装了俄语键盘,而无需实际下载额外的脚本库。


HN 热度 392 points | 评论 208 comments | 作者:air7 | 1 day ago #

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

  • 许多恶意软件会检测是否安装了俄罗斯键盘布局,如果是则终止运行以避免被分析。
  • 复杂的恶意软件会检查 CPU 核心数、硬盘空间,甚至硬件温度或调试器是否存在。
  • 有关 Windows 恶意软件的信息主要来自大型计算机安全公司的研究博客。
  • 恶意软件针对 Mac 和 iOS 的攻击正在增加。
  • 虚拟化技术可能被用来检测是否运行在虚拟机上,从而避免运行。
  • 通过安装虚拟机软件的字符串来模拟虚拟机环境。
  • 将虚拟机软件的客户端扩展安装在主机上,使其更像虚拟机。
  • 通过安装 Oracle 的虚拟机软件可能会引起法律问题。
  • 强化系统本身比模拟虚拟机环境更有效。
  • 使用非管理员账户可以限制恶意软件的破坏范围。
  • 在企业环境中,攻击者可能会利用本地管理员权限进行网络横向移动。
  • 权限提升是常见的安全问题。
  • Qubes OS 通过隔离方法可以保护用户免受未知漏洞的影响。
  • 许多安全漏洞和攻击是由于安全设置不当和培训不足造成的。
  • 安装 Ghidra 等工具可以帮助分析恶意软件。
  • 不要在生产硬件上玩游戏。
  • 安装俄罗斯输入法可以作为避免恶意软件运行的一种手段。

Gridfinity: The modular, open-source grid storage system #

https://gridfinity.xyz/

Gridfinity 是一个模块化、开源的网格存储系统,旨在帮助用户保持工作空间的高效、有序和安全。这个系统是免费的,开源,并且几乎所有部件都可以使用 3D 打印机制作。

Gridfinity 的起源 #

Gridfinity 的设计理念部分受到了 Zack Freedman 最初设计的启发,其设计最初在视频“Gridfinity: Your Ultimate Modular Workshop is FREE!”中发布,作为一个社区可以扩展的框架,并在 MIT 许可证下发布。现在,Gridfinity 已经成为一个活跃社区手中的项目,社区成员不断地根据自己的需求对其进行调整和改进。网站邀请用户加入这个社区,通过使用和调整系统来共同发展。

Gridfinity 的特点 #

  • 模块化和开源:Gridfinity 是一个模块化的系统,用户可以根据自己的具体需求进行定制。
  • 3D 打印:几乎所有的 Gridfinity 部件都可以使用 3D 打印机制作,这使得用户可以根据自己的空间和需求打印出合适的部件。
  • 社区参与:Gridfinity 鼓励用户加入社区,共同参与到系统的改进和发展中来。

Gridfinity 的资源 #

  • 在线生成器:用户可以通过在线生成器来创建自定义的箱子、基座、盖子等部件,只需输入尺寸即可。
  • 设计工具:用户可以在 gridfinitygenerator.com 上设计箱子和基座。
  • 社区支持:用户可以通过加入 Zack 的 Discord 服务器上的#gridfinity 频道来参与社区讨论和协作。
  • GitHub 编辑:用户还可以在 GitHub 上编辑这个网站,为 Gridfinity 项目做出贡献。

这个网站是一个正在进行中的项目,用户可以通过参与社区活动来帮助其发展和完善。


HN 热度 389 points | 评论 164 comments | 作者:nateb2022 | 21 hours ago #

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

  • 有人提出可以使用卫生纸卷或其他废纸板制作 Gridfinity 的墙壁以节省材料。
  • 有人分享了一个使用类似概念的角落件,主要材料可以是废亚克力、中密度纤维板、纸板等,只需打印角落件。
  • 有人对使用卫生纸卷作为存储材料表示惊讶,认为纸张不是卫生的材料,且厕所充满细菌。
  • 有人建议担心卫生和细菌的人可能需要考虑自己的担忧是否过度,并可能需要咨询治疗师。
  • 有人指出如果卫生纸卷上的细菌是问题,那么牙刷的问题会更大。
  • 有人提到通常不会在使用牙刷时接触生殖器。
  • 有人对卫生纸卷的卫生问题表示幽默的看法。
  • 有人提到口腔中的细菌比生殖器上的多。
  • 有人提出引用热力学零定律来讨论这个话题。
  • 有人分享了一个关于使用卫生纸卷的笑话链接。
  • 有人对修改后的木质卫生纸卷表示震惊。
  • 有人对 fark 网站的讨论表示惊讶。
  • 有人讨论了如何使用卫生纸卷擦拭。
  • 有人对卫生纸卷的卫生问题表示不以为然,认为大多数人不会对此过分担忧。
  • 有人指出卫生纸卷在社会中通常被视为无害的材料,常被用于儿童的玩耍和手工艺。
  • 有人提到关于冲洗厕所时产生的气溶胶的电视节目引发了一些强迫症/洁癖者的担忧。
  • 有人表示不想使用任何难以清洁的表面作为长期食品存储。
  • 有人澄清 Gridfinity 不是用于食品存储,而是用于存放如电容器、螺丝和电工胶带等物品。
  • 有人提到 3D 打印材料如 PLA 是食品安全的,但由于打印层之间的边缘和线条,几乎不可能清洁到食品安全的程度。
  • 有人提出可以通过丙酮蒸汽浴使 3D 打印物品表面平滑,从而变得相对食品安全。
  • 有人纠正说 PLA 不溶于丙酮而是溶于柠檬烯。
  • 有人讨论了 3D 打印材料和设备的食品安全性问题,包括 PTFE、ASA/ABS 和加热床涂层等。
  • 有人建议使用食品安全涂层来解决 3D 打印与食品接触的问题。

Ask HN: What Are You Working On? June 2025 #

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

这篇文章是关于一系列个人项目的分享,主要内容集中在一些独特和创新的想法上。以下是几个主要项目的详细总结:

  1. Laboratory.love

    • 这是一个个人开发的众筹平台,旨在独立测试食品中的化学物质,尤其是内分泌干扰物。根据 PlasticList 的研究,发现大多数食品中都含有塑料化学物质,尤其是婴儿食品。
    • 用户可以在平台上找到或建议产品,为其测试资金提供支持。若在 365 天内未能达到资金目标,将自动退款。所有测试结果将公开发布,透明度有助于推动市场的变化,促使企业提高产品质量。
  2. Mochi

    • 这是一个小型编程语言的开发项目,专注于以轻量级的方式查询结构化数据(如 CSV 和 JSON)。该语言内置了声明式查询,具备优化的寄存器式虚拟机,支持静态类型推断等特性。
    • 该项目旨在提供一个比现有工具(如 Python 和 SQL)更简洁的选择,尤其适合数据管道和查询任务。
  3. **Nest 温控器开源版本 **:

    • 这个项目致力于开发一个兼容 Nest 第二代温控器的开源版本。它将使用 Nest 的外壳和界面设计,但内部电路将由开源 PCB 替代,以便与 Home Assistant 兼容。
    • 项目旨在解决 Nest 停止支持旧型号的问题,确保用户仍然可以控制和设置温度。
  4. ** 空中防御模拟器 **:

    • 这是一个模拟器项目,目的是让用户体验空中防御操作的情景。用户可以测试不同的场景,构建防御网络以应对真实世界中的威胁(例如导弹袭击)。
    • 该项目强调教育和模拟的价值,旨在帮助决策者理解空防的复杂性。
  5. ** 短片《寻找黑泽明》**:

    • 这是一个关于著名导演黑泽明的短片纪录片,讲述了与黑泽明合作的工作人员 Kawamura 的故事。经过近 40 年的努力,Kawamura 终于恢复了被没收的珍贵影像。
    • 该影片已在多个国际电影节放映,并将在即将到来的纽约亚洲美国国际电影节上展映。
  6. **YouTube 内容发现 Chrome 扩展 **:

    • 这是一个旨在帮助用户更容易发现 YouTube 上新内容的 Chrome 扩展。它利用众包的方式对用户观看的频道进行分类,提供一个层次分明的分类体系。
    • 经过两个月的开发,这个扩展允许用户查看当前页面内容的分类,并发现更多相关的频道。

这些项目展示了个人在不同领域的创新思维和技术应用,涵盖了食品安全、编程语言开发、硬件逆向工程、军事模拟以及影视创作等多个方向。


HN 热度 352 points | 评论 1107 comments | 作者:david927 | 1 day ago #

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

  • Laboratory.love 项目允许用户众筹测试他们实际购买的产品,以检测内分泌干扰物,类似于消费者报告和 Kickstarter 的结合。
  • 项目旨在通过透明度对公司施加市场压力,促使供应链变得更加清洁。
  • Laboratory.love 与 ISO 17025 认证实验室合作,测试不同生产批次的三个样本,能够检测到十亿分之一的化学物质。
  • 用户可以在网站上浏览产品、添加自己的产品或关注他们感兴趣的特定产品。
  • 有人建议测试其他化学物质,如重金属,特别是关注大米中的砷含量。
  • 有人提到加州种植的大米砷含量较低,建议购买加州种植的大米。
  • 有人询问如何在其他州找到加州种植的大米,有时标签上只写“美国”。
  • 有人提到不要购买以前种植棉花的土地上种植的大米,因为曾使用钙砷酸盐杀虫。
  • 有人对同一产品不同口味的邻苯二甲酸盐含量差异表示疑惑,认为这可能影响产品的保质期。
  • 有人对 Laboratory.love 公开发布的测试结果表示兴趣,并询问如何查看这些结果。
  • 有人对 Laboratory.love 的网页界面提供帮助表示愿意贡献。
  • 有人对 Laboratory.love 项目表示赞赏,并计划向一些产品捐赠。
  • 有人询问资金如何在一年内保管,是否进入托管直到项目获得资金。
  • Mochi 是一种新的编程语言,专注于以统一轻量的方式查询结构化数据,具有声明式查询、基于寄存器的 VM、中间表示和静态类型推断等特点。

Loss of key US satellite data could send hurricane forecasting back ‘decades’ #

https://www.theguardian.com/us-news/2025/jun/28/noaa-cuts-hurricane-forecasting-climate

这篇文章讨论了美国气象预报领域面临的一个严峻问题:关键的美国卫星数据收集项目——国防气象卫星计划(DMSP)即将被终止,这可能会使飓风预报能力倒退数十年。文章指出,DMSP 的三个卫星因其独特的特性和高分辨率,每天能两次绘制全球图像,是监测北极海冰和飓风发展的主要信息源。DMSP 与国家海洋和大气管理局(NOAA)合作,将卫星收集的天气数据公开。

NOAA 在 6 月 28 日向科学家发送的公告中提到,由于“最近服务变化”,DMSP 将“不迟于 2025 年 6 月 30 日停止摄入、处理和分发所有 DMSP 数据”。科学家们表示,这一变化可能会削弱飓风预报的准确性,尤其是在飓风季节即将到来之际。

文章中提到,DMSP 卫星是唯一能让科学家穿透发展中飓风云层的卫星,这对于预报至关重要。佛罗里达州立大学的飓风研究员 Allison Wing 表示,没有这些卫星,科学家们将无法像以前那样准确预测飓风的发展。此外,这些卫星还为追踪极地冰盖变化提供了独特数据,已经连续监测极地海冰变化超过 40 年。

科学家们表示,卫星本身运行正常,没有出现任何错误,因此数据收集和分发的突然停止可能是一个有意的决定。这一变化可能会使 NOAA 的天气和气候监测服务在人员严重不足的情况下进一步受到影响,因为特朗普政府所谓的“政府效率部门”(Doge)倡议已经对联邦环境项目实施了严厉的削减。

一位不愿透露姓名的 NOAA 科学家表示,停止 DMSP 的行动,结合特朗普政府最近的其他举措,相当于“对科学的系统性破坏”。这位科学家还证实,联邦飓风预报员对这一突然变化措手不及,只有几天的通知时间。

科学家们表示,停止 DMSP 将导致飓风预报能力立即下降,这将影响到预计将是高于平均水平的飓风季节,以及监测海冰的能力——就在北极海冰达到新低记录之际。气象学家 Michael Lowry 表示,这些卫星数据的永久停止是无意义的、鲁莽的,危及数千万生活在飓风地带的美国人的生命。

DMSP 始于 1963 年,当时国防部确定需要高分辨率的云层预测来帮助规划间谍任务。这个项目已经成为联邦政府运行时间最长的天气卫星计划,不仅对飓风的内部运作,还对极地海冰、野火、太阳耀斑和极光等信息至关重要。近年来,随着国防部从冷战任务转型,DMSP 在保持一致的资金和优先级方面遇到了困难。唯一拥有类似卫星能力的国家是日本,科学家们已经在考虑如果 DMSP 中断,可能需要转向日本的数据——尽管这种转变需要时间。


HN 热度 308 points | 评论 147 comments | 作者:trauco | 1 day ago #

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

  • 美国可能故意停止关键卫星数据的收集和分发,以避免证明气候变化导致飓风强度增加。
  • 停止数据收集可以让美国在国际舞台上否认气候和天气状况的恶化,同时声称拥有最好的数据但不分享。
  • 通过控制数据和公众之间的宣传,可以无视数据的存在,从而对其他国家施加压力或作为武器。
  • 法院可能不会支持这种数据切断的行为,但有些人可能会相信。
  • 有人认为最高法院(SCOTUS)在某些决策上与当前政权意识形态一致,这在民主党总统任期内不会出现。
  • 有人认为最高法院的问题不在于盲目忠诚于特朗普,而在于更深层次的世界观信念,有时与特朗普的政策相吻合,对美国社会造成损害。
  • 有人认为最高法院的某些法官对特朗普盲目顺从,例如 Aileen Cannon 法官。
  • 有人认为最高法院在宪法问题上可能会根据执政党的不同而做出截然不同的裁决。
  • 有人认为通过控制数据,美国可以利用天气事件的知识作为对其他国家的杠杆或武器。

There are no new ideas in AI only new datasets #

https://blog.jxmo.io/p/there-are-no-new-ideas-in-ai-only

这篇文章由 Jack Morris 撰写,主题是关于人工智能(AI)的进步和创新。文章首先指出,尽管 AI 在过去十五年,尤其是最近五年取得了令人难以置信的进步,但这种进步并非不可避免,而是通过一系列缓慢而稳定的进步实现的。一些研究者甚至提出了“AI 的摩尔定律”,即计算机在执行某些任务(如编码任务)的能力随时间呈指数增长。

文章接着讨论了 AI 进步的来源,许多人认为这来自于学术界(如 MIT、斯坦福、CMU)和工业界(如 Meta、谷歌)的研究社区的持续创新。文章列举了一些近年来的重要进展,包括 Stanford 的 FlashAttention、Google 的推测性解码、互联网狂热者开发的 Muon 优化器,以及 DeepSeek 发布的 DeepSeek-R1 开源模型。

尽管有这些研究进展,一些人认为 AI 的进步正在放缓,最近的两个大型模型 Grok 3 和 GPT-4.5 在能力上只比它们的前身略有提高。例如,在最新的数学奥林匹克考试中,语言模型的得分仅为 5%,表明最近的一些声明可能被夸大了。

文章进一步探讨了 AI 领域的几次重大突破,包括深度神经网络、Transformers 和 LLMs、RLHF(强化学习人类反馈),以及推理能力。作者认为,这些突破可以归结为 AI 领域发生的一切,从图像识别系统到文本分类器,再到聊天机器人,最后是推理模型。

文章提出,如果我们想要实现第五次重大突破,研究已有的四次突破是有帮助的。作者认为,这些突破背后的机制在 1990 年代甚至更早就已经存在,我们只是在应用相对简单的神经网络架构,进行监督学习或强化学习。文章指出,这些“重大突破”实际上是我们已知事物的新应用。

文章最后强调,每次突破都使我们能够从新的数据源中学习,例如 AlexNet 和其后续模型解锁了 ImageNet,Transformers 解锁了互联网上的所有文本,RLHF 使我们能够从人类标签中学习,而推理能力则让我们能够从验证器(如计算器和编译器)中学习。每次里程碑都标志着相应数据源(ImageNet、互联网、人类、验证器)首次大规模使用,随后是研究人员之间的竞争,以更有效地利用现有数据。

文章总结说,AI 的进步可能是不可避免的,一旦我们收集了 ImageNet,当时互联网上最大的公共图像集合。文章暗示,尽管我们做出了许多技术创新,但最重要的因素可能是数据本身,而不是新的想法。


HN 热度 282 points | 评论 148 comments | 作者:bilsbie | 9 hours ago #

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

  • John Carmack 探索的领域揭示了人工智能在 2D 视频游戏方面的局限性,认为没有发展出真正的智能,只是特定任务的专长。
  • 有人质疑 Carmack 使用的模型不适合得出这样的结论,并且他没有使用最先进的模型进行研究。
  • 有观点认为,通过混合方法,人工智能已经在某些领域超越了人类。
  • 有人提出,目前没有单一模型能够成功,但是混合方法已经能够在新创建的视频游戏中快速展示能力。
  • 有观点认为,需要一个处理运动和战术的空间/物理模型,并由高级策略模型(可能是大型语言模型)监督。
  • 有人认为,根据给定的提示约束生成视频与玩游戏不同,因为后者需要对未知输入做出反应。
  • 有人表示,Veo3 证明了人工智能可以泛化 2D 甚至 3D 游戏,但有人反驳说 Veo3 并不能真正生成或玩游戏。
  • 有人提出,可以通过图像提示和文本解释让 Veo3 生成几帧游戏玩法,但这并不是真正的交互式游戏玩法。
  • 有人指出,Veo3 在生成视频时存在对象持久性问题,例如车辆在视频中突然变换位置。

Show HN: TokenDagger – A tokenizer faster than OpenAI’s Tiktoken #

https://github.com/M4THYOU/TokenDagger

TokenDagger 是一个高性能的 OpenAI TikToken 实现,专为大规模文本处理而设计。它在代码样本分词上的速度是 OpenAI TikToken 的两倍,并且速度提高了四倍。以下是 TokenDagger 的一些关键特性:

  1. 基准测试:在 AMD EPYC 4584PX 处理器上进行,该处理器具有 16 个核心和 32 个线程,主频为 4.2 GHz。TokenDagger 采用了优化的 PCRE2 正则表达式引擎,以提高令牌模式匹配的效率。它与 OpenAI 的 TikToken 分词器完全兼容,并简化了 BPE 算法,以减少大型特殊令牌词汇表对性能的影响。

  2. 运行测试:用户可以通过以下命令来运行测试:

    • make clean && make
    • pip3 install tiktoken
    • python3 tests/test_tokendagger_vs_tiktoken.py --tokenizer llama
    • python3 tests/test_tokendagger_vs_tiktoken.py --tokenizer mistral
    • python3 tests/performance_benchmark.py --tokenizer llama
    • python3 tests/performance_benchmark.py --tokenizer mistral
    • python3 tests/code_performance_benchmark.py --tokenizer llama 测试结果显示 TokenDagger 在代码分词上的速度是 OpenAI TikToken 的 4.02 倍。
  3. 安装

    • 从 PyPI 安装(推荐):pip install tokendagger
    • 开发安装:首先克隆 TokenDagger 的 Git 仓库,然后安装依赖项,包括 libpcre2-dev 和 python3-dev。如果需要运行测试,还需要安装 tiktoken。
  4. 依赖项:TokenDagger 依赖于 PCRE2(Perl Compatible Regular Expressions),这是一个正则表达式库,可以在 GitHub 上找到。

  5. 关于:TokenDagger 是 OpenAI TikToken 的一个高性能实现,它提供了快速的分词能力,并且可以作为 OpenAI TikToken 的直接替代品。

  6. 资源:项目提供了 README 文件和 MIT 许可证。

以上摘要基于网页内容,提供了 TokenDagger 的基本信息、特性、测试方法、安装步骤、依赖项和项目资源。


HN 热度 241 points | 评论 66 comments | 作者:matthewolfe | 12 hours ago #

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

  • TokenDagger 作为 OpenAI 的 Tiktoken 的替代品,通过使用更快的 jit-compiled regex 引擎和简化算法来提高性能。
  • 短期内通过用 C++ 重写 AI/ML 基础设施的部分代码可以找到大量的性能优化空间。
  • 软件开发应该先实现功能,再优化性能,最后改善外观。
  • 有人将软件开发原则理解为“先让它工作,再让它正确,最后让它快速”。
  • 软件开发原则也可以理解为“先让它工作,再让它正确,再让它美观”。
  • 软件开发中“让它工作”和“让它正确”的区别在于是否采用了更稳健的实现方式。
  • 有人将“让它正确”理解为“让它美观”,强调代码的可维护性、可扩展性、良好的测试和文档。
  • 在机器学习中,即使不是 100% 正确,系统也可以在一定程度上工作。
  • 有人反对将 Python 从 AI/ML 基础设施中移除,认为 Python 在研究中的迭代速度至关重要。
  • Python 是 AI 集成的好语言,因为它处理字符串能力强,有丰富的包生态系统,易于编写和学习。
  • 许多性能敏感的代码已经用 C 或 Cython 编写,Python 的开销很小。
  • 有人提出,将 TokenDagger 作为性能显著提升的替代品是一个美丽的创意。

I write type-safe generic data structures in C #

https://danielchasehooper.com/posts/typechecked-generic-c-data-structures/

这篇文章由 Daniel Hooper 撰写,标题为“在 C 语言中编写类型安全的通用数据结构”,发表于 2025 年 6 月 25 日,阅读时间大约 7 分钟。文章介绍了作者使用的一种在 C 语言中实现类型安全通用数据结构的技术,这种技术利用联合体(unions)将类型信息与通用数据结构关联起来。作者通过实现一个基本的链表来阐述这一概念,并指出这种方法适用于任何类型的数据结构,如映射(maps)、数组(arrays)、二叉树(binary trees)等。

文章首先介绍了 C 语言泛型(generics)的三个不同层次:

  1. 泛型级别 0:通用头文件(Generic Headers) 作者提到,这种方法需要在头文件中使用宏(macros)来定义数据结构的类型,并且需要多次包含同一个头文件以适应不同的数据类型。这种方法虽然通用且类型安全,但存在一些缺点,如难以查找类型和函数的定义位置、代码补全可能处理不好、增加二进制大小和构建时间、需要使用类型前缀的函数名等。
  2. 泛型级别 1:void(void pointer)* 另一种方法是使用 void 指针来创建通用数据结构,但这不是类型安全的。作者提供了一个使用 void 的链表实现示例,并指出这种方法在内存和性能方面不理想,因为它需要为每个节点进行两次内存分配,并且可能会在遍历链表时产生两次缓存未命中。
  3. 泛型级别 2:内联存储(Inline storage) 为了解决 void 方法的问题,作者提出了使用灵活数组成员(Flexible Array Member)直接在节点内部存储数据。这样,只需要一次内存分配就足够存储节点和其数据,解决了 void 方法的内存和性能问题。
  4. 泛型级别 3:类型检查(Type Checking) 文章的重点部分是介绍如何让编译器在尝试添加错误类型到列表时报错。作者通过使用带有参数化类型的联合体成员来实现这一点。这样,可以在编译时获取列表包含的类型信息,并在宏中使用这些信息来强制类型安全。

文章最后,作者提到了如何处理 C 语言中类型定义相同的变量不被识别为相同类型的问题,并提供了解决方案。作者还提到,这种技术可以应用于任何类型的数据结构,包括具有多个关联类型的数据结构,如哈希映射(hash map)。文章最后感谢读者,并提供了代码实现的链接以供参考。


HN 热度 210 points | 评论 81 comments | 作者:todsacerdoti | 7 hours ago #

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

  • uint64_t data[] 在类型对齐大于 uint64_t 时是错误的,对于对齐小于 uint64_t 的类型则浪费空间。
  • 没有 typeof 导致不能返回任何东西,且 == 对称性导致 const 错误。
  • 代码中省略 payload 会导致无法知道正确的大小,类型安全无法保证。
  • C 语言中泛型的限制包括:vtable 功能受限,无法包含宏,只能包含函数;外部 vtable 需要预先声明所有可能使用的类型。
  • 编写编译器来解决泛型问题,但生成的样板代码量巨大。
  • 编译到 C 语言比在 C 中使用巧妙技巧更好,因为编译器可以更简单且自给自足。
  • 在 C 语言中,int main() 表示函数接受未知数量的参数,而 int main(void) 表示不接受任何参数。
  • C 标准中,空参数列表在函数定义中意味着不接受任何参数。
  • C23 标准中,foo() 现在是无参数函数,但对 main() 的定义没有影响。
  • 希望 union 能够联合,声明类型时不需要预先声明所有可能的类型。
  • 对于布局兼容类型,可以在每个子类型中包含一个 _base 成员。
  • 计算大小时可能会有填充,导致计算出的大小过小。
  • 作者的代码中已经包含了填充,所以没有问题,但如果更智能地进行对齐,则可能会有问题。
  • 通过特定的技巧,可以在 C 语言中创建一个完整的方言,最终得到非常普通的 C 结构体,易于优化。
  • 二叉堆和链表是不同的用例,二叉堆需要读取数据以正确存储,而链表不需要。
  • C++ 模板是一个更好的选择。
  • 头文件实现更好,因为调试更好,类型信息更丰富,编译器优化机会更多,泛型结构可以固定大小放在栈上。

Show HN: New Ensō – first public beta #

https://untested.sonnet.io/notes/new-enso-first-public-beta/

新版本 Ensō(代号:Occult Vampire Keanu)现已开放公测!

这是测试时使用的临时图标,我正在考虑创建一个简化版。

更新内容包括:

  1. 遵循 MISS 原则,我更注重减少干扰而非增加新功能。这可能出人意料地具有挑战性(例如,我如何在不打断用户流程的情况下告诉用户关于功能 X 或 Y 的信息?),但也让我有更多时间专注于完善应用。

  2. 简化、更易用的界面:

    • 遵循 MISS 哲学,界面更加简洁、直观。
    • 大部分 UI 已移至应用程序菜单栏,便于发现和快捷访问。目前还没有人怀念旧的内联 UI,但您可以在本文末尾了解更多相关信息。
  3. 5½ 款无障碍主题可供选择:

    • 我们提供了 6 款(5½ 款)预定义主题,专注于无障碍和特定使用模式,这些是基于我多年来收集的反馈。
    • 主题包括:在普通光线下白天写作、在强光下写作、在弱光下写作、适用于 OLED 屏幕的低光写作、完美黑色写作、极低光线条件下写作(如 Midnight、Obsidian for Vampires)以及专为 OLED 屏幕设计的夜间写作主题。
  4. Coffeeshop Mode™:

    • 这是 Ensō 中为数不多的全新功能之一。Coffeeshop 模式允许您不必担心站在您身后的人可能会看到您正在输入的内容。文本本身被隐藏,但您仍然知道自己在写什么。
    • 使用 ⌘-C 随时切换开启和关闭。
  5. 一些较小的无障碍改进:

    • 如果您去掉编辑菜单并称之为写作,MacOS 不会在您的设置中添加 AI 功能。
    • 切换自动更正、自动大写、拼写检查。
    • 控制文本大小(之前在原生版本中不可能)。
  6. 全新的文本渲染引擎:

    • 新的文本渲染引擎允许更好地控制排版设置,支持 Coffeeshop 等替代显示模式,并使用自定义光标。
    • 我无法客观地描述它(显然我也缺乏距离感),但在新 UI 中写作感觉不同,更流畅。文本易于阅读,但也更柔和(尽管不是模糊的)。
  7. 应用商店默认发布(但独立版本仍在计划中):

    • Ensō 将默认通过应用商店发布。我们将保留 Gumroad 上的旧版本,但没有理由维护它,因为新版本在各个方面都更好,功能上也相同。
  8. 未包含的内容:

    • 分析:我每天使用 Ensō 已经 6 年了。我也收到了大量高质量的反馈,不是通过分析,而是来自愿意联系我的用户。
    • 个性化:将来会加入,但新版本已经比旧版本好很多,我觉得等待更多功能将是一个浪费的机会。
    • RTL(或非 LTR)语言支持:这将在下一个测试版本中包含。许多 Ensō 用户使用非拉丁字母的语言(据我所知,主要是波斯语、阿拉伯语和希伯来语)。
  9. 接下来的计划:

    • 收集测试反馈并回应。
    • 准备基本营销材料。
    • 添加 RTL 写作支持。
    • 发布。
  10. 我正在考虑的想法:

    • Windows 和 Linux 支持:我将在接下来的几个月内重新审视。我正朝着依靠自己的项目养活自己的方向努力,我需要有选择地使用我的时间。如果您有兴趣测试 Windows 或 Linux 版本,请告诉我。
    • 快速保存:按 ⌘+S 将自动将您的笔记快照保存到预定义目录中,并带有时间戳文件名,例如 note-27-06-2025.txt。
    • Toybox:一个可选的菜单功能,定期发布实验性工具,例如:写作提示、写作计时器、视觉实验(例如不同的排版风格或字母和单词变成随着您输入而生长的藤蔓)。

HN 热度 210 points | 评论 81 comments | 作者:rpastuszak | 13 hours ago #

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

  • 有人认为 Ensō 是一个帮助进入写作状态的工具,通过分离写作和编辑过程,减少自我编辑的可能性。
  • 有人建议增加改变字体和光标的功能,认为闪烁的光标分散注意力且不必要。
  • 有开发者表示更喜欢使用等宽字体进行写作。
  • 有人提到编剧只使用 Courier 字体进行写作。
  • 有人认为在添加新的 UI 元素时应该非常谨慎,尤其是那些可能引起分心的元素。
  • 有人觉得在电脑上写作最好的部分是能够边写边编辑,但也理解这对很多人来说并不适用。
  • 有人认为强迫自己“不编辑”有助于挖掘出隐藏在思维深处的想法。
  • 有人提到使用类似方法起草博客文章,认为这有助于释放内心的想法。
  • 有人觉得在电脑上写作最好的部分是清晰易读。
  • 有人询问 Ensō 是否与之前的一款应用启动器有关。
  • 有人表示喜欢咖啡店模式,并希望在 Obsidian 中实现类似的功能。
  • 有人提到了其他几款类似的写作工具,如 Apostrophe 和 OmmWriter。
  • 有人对 Ensō 没有使用分析追踪表示赞赏,并希望更多应用开发者效仿。
  • 有人提到了另一个写作应用 TheMostDangerousWritingApp,并认为它与 Ensō 在很多方面相似,但感觉完全不同。
  • 有人提到了 Linux 上的 Apostrophe 应用,并认为它与 Ensō 在概念上可能有所不同。
  • 有人期待 Ensō 项目的发展,并提到了 Moomin 的图像风格。
  • 有人作为 Ensō 的长期用户,希望有 Linux 版本,以减少分心。
  • 有人提出了一个简单的命令行方法来实现无编辑写作。
  • 有人提到在写作时用于推理,需要能够阅读已经写的内容,即使不需要编辑。
  • 有人通过闭上眼睛或看向别处来专注于写作。

Bought myself an Ampere Altra system #

https://marcin.juszkiewicz.com.pl/2025/06/27/bought-myself-an-ampere-altra-system/

Marcin Juszkiewicz 是一位 ARM 开发者,他在寻找一台开发机器时,最终选择了基于 Ampere Altra 的系统。他之前使用的 AArch64 系统,包括苹果 MacBook Pro,虽然速度快,但不支持他工作所需的 64k 页面大小。因此,他决定购买一台尽可能便宜的 Ampere Altra 系统。

他购买的主要部件包括:

  • 一个全新的主板:AsrockRack ALTRA8BUD-1L2T,这是一款为数据中心设计的产品。
  • 一个二手处理器:最初计划购买 Q64-22(64 核心,2.2 GHz),但最终从一个朋友那里得到了 Q80-30(80 核心,3.0 GHz)。
  • CPU 散热器:在波兰的一家在线商店购买了 Arctic Freezer 4U-M。
  • 内存:购买了八根 16GB 的 SK-Hynix HMA82GR7CJR8N-XN,虽然这款内存不在 Ampere Altra 的官方批准供应商列表上,但工作正常。
  • 其他普通部件:包括机箱、电源供应、NVME 存储和显卡。

机箱选择上,他选择了 Endorfy 700 Air,这款机箱可以容纳 EATX 主板,并且有足够的空间进行布线。电源供应方面,他使用了 MSI MPG A850G,这款电源有两个 EPS12V 连接器,并且可以连接第三个。他还购买了 Lexar LM790 2TB 的 NVME 存储和一个 Radeon Pro WX2100 显卡。

整个系统的总成本为 7732 波兰兹罗提(约 1800 欧元),比他最初预期的多出约 500 欧元。CPU 升级到 80 核心额外花费了 100 欧元,内存由于更换卖家额外花费了 40 欧元。他原本计划每核心分配 2GB 内存,但由于 CPU 升级,需要 256GB 内存,这将额外花费 250-300 欧元。

他的计划包括:

  • 安装 Fedora 42 操作系统。
  • 创建多个虚拟机实例,包括 RHEL 9/10 和 CentOS Stream 9/10。
  • 尝试在系统中安装 Radeon RX 6700XT 显卡并检查其兼容性。
  • 尝试将系统作为桌面使用。
  • 进行一些疯狂的实验。

所有 Linux 系统都将使用 4k 和 64k 页面大小的内核。这篇文章由 Marcin Juszkiewicz 在 2025 年 6 月 27 日撰写。


HN 热度 200 points | 评论 88 comments | 作者:pabs3 | 20 hours ago #

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

  • Ampere Altra 系统在 C++ 构建和 Docker 镜像创建方面表现出色,64 核心版本尤其适合服务器形态
  • 由于网络问题,尽管 Altra 系统性能优异,但发布构建仍然需要转移到云上
  • 64k 页面大小的需求可能来自于某些工作的特殊要求,例如 Red Hat 的某些测试需要 64k 页面大小的系统
  • Asahi Linux 可能支持在苹果硅硬件上实现 64k 页面,但可能需要对软件进行补丁
  • ARM64 硬件支持特殊“连续”位,允许将多个连续页面作为单个条目缓存在 TLB 中,这可能帮助实现 64k“页面”
  • 苹果 Mx 系列 CPU 仅支持 4k 和 16k 页面大小,无法在不模拟整个 CPU 的情况下运行 64k 二进制文件
  • Red Hat 提供了许多内部 aarch64 机器,但有时人们更希望拥有自己的机器进行测试和玩耍
  • 选择 80 核心 CPU 是因为 Q32 更贵,而 Q80 提供了更好的报价,且 AArch64 硬件的选择有限或过于昂贵
  • 尽管 Raspberry Pi 4 等低成本 ARM 设备可以运行 64 位 Linux,但它们使用定制(过时)内核和专有启动方法,可能不适用于开发通用 Linux 发行版
  • x86 架构支持 2MB 和 2GB 的大页面,以及 4KB 页面,这些大页面可以减少操作系统跟踪页面的开销,并提高内存访问速度
  • 在 NT 上,任何大页面必须用单一保护映射,如果页面包含只读代码和读写数据,则整个页面必须标记为读写
  • 64k 是 ARM 架构支持的最大页面大小,对于分配大量内存的应用程序有优势

Personal care products disrupt the human oxidation field #

https://www.science.org/doi/10.1126/sciadv.ads7908

这篇文章是发表在《Science Advances》期刊上的一篇研究论文,主题是个人护理产品对人类氧化场的干扰。以下是文章的中文摘要:

**标题:**个人护理产品破坏人类氧化场

**作者:**Nora Zannoni 等人

**发表日期:**2025 年 5 月 21 日

摘要: 人们在臭氧存在的情况下,通过皮肤排放的烯烃的臭氧化反应产生羟基自由基(OH)。在这项研究中,我们发现使用包括香水和身体乳液在内的个人护理产品(PCPs)会抑制人类氧化场。身体乳液阻碍了 6-甲基-5-庚烯-2-酮的生成,这是一种关键的 OH 前体,而 PCPs 中的许多挥发性成分则增强了气相中 OH 的损失。尽管香水中含有能够通过臭氧化反应产生 OH 的萜烯,但更多的乙醇溶剂作为 OH 的汇。我们结合了一个多相化学动力学模型和一个计算流体动力学模型,以展示室内环境中反应性组分的浓度如何发展。这些发现对有人居住空间的室内化学和人类健康具有影响。

引言: 室内环境中存在多种化学化合物的来源,包括家具、地板和陈设等住房材料的持续排放,以及烹饪、吸烟和清洁等人类活动的周期性强烈排放。室外空气中的化学物质也可以通过被动和主动通风进入室内环境。室外的臭氧(O3)可以与室内化合物反应,在室内生活空间内创造出复杂的化学混合物。由于人们高达 90% 的时间都在室内度过,长时间暴露于这些多样化的化学物质是值得关注的,特别是因为许多这类化学物质对人类健康的影响尚不清楚。近期的研究表明,人类自身是室内化学化合物的强大来源和汇。Zannoni 等人的研究表明,O3 在皮肤上的反应以及随后与空气中产品的结合,创造了一个由 OH 自由基构成的身体包裹的氧化场。在 22.5 立方米的房间中,以每小时约 3 次空气更换率通风,一个年轻人产生的 OH 浓度约为 2×10^5 分子/立方厘米,与某些地点的室外水平相当。羟基自由基极其活跃,能够比 O3 更快地氧化更广泛的物种。这样的自然氧化场可以改变室内个人化学暴露。通过在严格控制条件下,限制使用个人护理产品,暴露志愿者于 O3,发现了个人氧化场。然而,在现实世界的场景中,包括清洁剂和香水产品在内的产品,其萜烯成分也可以与 O3 反应生成 OH 自由基。室内排放的其他化学物质(例如,烹饪油中的烷烃)与 OH 自由基反应,降低其浓度。对 OH 场强度最直接的潜在影响来自 PCPs,如皮肤乳液和香水。全球范围内,PCPs 的使用非常广泛,2024 年的年收入估计为 6462 亿美元。这种广泛的消费甚至被证明影响了北美和欧洲人口密集地区的室外空气质量。鉴于人类氧化场影响呼吸区和皮肤附近的空气化学成分,它影响我们对化学物质的摄入,进而影响人类健康。因此,研究 PCPs 如何影响自生成 OH 场的强度和空间范围是有意义的。在 ICHEAR(室内化学人类排放和反应)项目框架内,我们评估了两种不同的 PCPs 对人类氧化场的影响。四名年轻人首先在温度控制的室内环境中暴露于 O3,然后在涂抹广泛使用的身体乳液或香水后重复实验。通过结合室内的空气测量和模型模拟,我们确定了乳液和香水对人类氧化场的净影响。


HN 热度 199 points | 评论 150 comments | 作者:XzetaU8 | 1 day ago #

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

  • 文章标题具有轰动效应,但内容试图对标题的暗示进行限制,同时仍引起讨论。
  • 该研究提出了一个有趣的思考点,但不足以作为个人健康建议的依据。
  • 作者使用“disrupt”一词可能带有负面含义,而文章后文中使用的“perturb”一词更为中性和恰当。
  • 建议使用橄榄油或葵花籽油代替商业护肤乳液,因为它们更天然。
  • 古希腊人在某些方面是正确的,例如使用植物油按摩。
  • 植物油按摩在古代是一种普遍做法,与现代洗澡一样频繁。
  • 古代按摩油和香水不含酒精,而现代护肤产品中的酒精成分可能是破坏“人体氧化场”的主要因素。
  • 橄榄油含有的酚酸比化妆品中的苯氧基乙醇更有毒,现代科学通过化学修饰降低毒性。
  • 古代使用的油和香水可能对“人体氧化场”的干扰作用较弱,因为它们捕获的羟基自由基较少,同时自身也产生一些自由基,可能抵消了捕获自由基的影响。
  • 古代的按摩油和香水与现代产品相比,可能对人体健康更有益。