5小时前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20251115
今日份日报信息量爆炸!AI 手写识别迎来重大突破,Google 新模型简直开了挂!议员们想禁 VPN?看完这篇文章你就知道有多离谱!还有 C 语言泛型、TCP 协议深度解析、AI Agent 桌面流媒体等硬核技术文等你来探索。想了解编程语言设计、垃圾数据反爬虫、Haskell 循环的奇技淫巧?这里都有!快来一起充电,别掉队!

---
## AdGuard DNS 调查 Archive.today 受到的可疑压力
本文深入调查了 Archive.today 近期面临的压力,以及 AdGuard DNS 如何卷入其中。文章揭露了一个名为 Web Abuse Association Defense (WAAD) 的组织,该组织声称 Archive.today 拒绝移除非法内容,并以此为由要求 AdGuard DNS 屏蔽该网站。
AdGuard DNS 认为这种要求非常不寻常,因为他们只是一个基础设施服务提供商。随后,事态升级为直接威胁,迫使 AdGuard DNS 寻求法律建议。他们发现,法国法律可能要求他们采取屏蔽措施,至少针对法国用户。然而,AdGuard DNS 认为,这种决定应该由法院做出,而不是由私营公司在法律威胁下决定。
为了进一步了解情况,AdGuard DNS 直接联系了 Archive.today。Archive.today 回应迅速,表示已移除相关非法内容,并且从未收到过之前的通知。他们还透露,Archive.today 一直是“连续”投诉的目标,这些投诉可能来自法国组织,旨在损害该网站。
AdGuard DNS 对 WAAD 进行了更深入的调查,发现该组织注册时间较短,网站信息有限,且与 Europol、OFAC、NCA 等知名组织的关系不明。此外,WAAD 提供的“bailiff reports” (在线内容官方记录) 大部分也是在近期创建的,而非其声称的 2023 年。更令人疑惑的是,2023 年的两份报告并非由 WAAD 订购,而是由一个与 Archive.today 管理员在 2024 年提及的律师姓名相符的人订购的。
目前,WAAD 背后的真实身份仍然未知。其域名注册信息被隐藏,使用 ProtonMail 和 Cloudflare 等服务也增加了追踪难度。
总而言之,Archive.today 在收到通知后迅速删除了非法内容,针对该网站的投诉看起来非常可疑,投诉方组织似乎是专门为了隐藏其背后身份而设立的。Archive.today 管理员分享的投诉样本显示出冒充真实人物的迹象。AdGuard DNS 已经联系了相关人员,正在等待回复。
- 原文: [Our investigation into the suspicious pressure on Archive.today](https://adguard-dns.io/en/blog/archive-today-adguard-dns-block-demand.html)
- Hacker News: [https://news.ycombinator.com/item?id=45936460](https://news.ycombinator.com/item?id=45936460)
- 作者: immibis
- 评分: 399
- 评论数: 101
- 发布时间: 2025-11-15 18:30:52
---
## C 语言中实现类型安全的泛型
本文介绍了一种在 C 语言中实现泛型的方法,虽然 C 语言本身不直接支持泛型,但通过一些技巧,可以实现类型安全且易于使用的泛型代码。文章的核心思想是利用宏来实现头文件的实例化,从而为不同的数据类型生成特定的函数和结构体。
文章首先回顾了常见的 C 语言泛型实现方式,例如使用函数式宏、void 指针以及通过函数式宏分发特化版本。作者认为这些方法各有缺点,例如类型不安全、依赖类型擦除、可读性差等。因此,作者推荐了一种基于头文件实例化的方法。这种方法通过定义 `VEC_ITEM_TYPE` 和 `VEC_SUFFIX` 宏来指定类型和后缀,然后包含一个通用的头文件,从而生成特定类型的函数。为了实现名称改编(name mangling),文章使用了一系列巧妙的宏定义,例如 `G(name)`,将类型信息嵌入到函数名中。文章还讨论了如何处理头文件重复包含、多重继承类型等问题,并给出了完整的示例代码。通过条件编译 `#ifndef VEC_IMPLEMENTATION`,可以控制是声明还是定义泛型函数,避免了重复定义错误。最后,文章给出了一个完整的头文件示例,展示了如何使用这种方法实现类型安全的泛型向量。
由于没有评论,因此不包含评论分析。
- 原文: [How to write type-safe generics in C](https://raphgl.github.io/blog/generics-in-c.html)
- Hacker News: [https://news.ycombinator.com/item?id=45937518](https://news.ycombinator.com/item?id=45937518)
- 作者: todsacerdoti
- 评分: 14
- 评论数: 2
- 发布时间: 2025-11-15 21:58:09
---
## TCP协议:互联网的基石与原理
本文深入探讨了TCP协议在互联网中的重要作用,解释了为什么我们需要TCP,以及TCP如何保证数据传输的可靠性和效率。文章还通过C语言代码示例,展示了TCP服务器的实现,并介绍了流量控制和拥塞控制的概念。
文章首先强调了互联网的不可靠性,数据包可能丢失、损坏或乱序。TCP协议通过端口号区分应用程序,保证数据能够正确送达目标进程。即使底层网络不稳定,TCP也能通过重传、校验和等机制,确保数据的完整性和顺序。此外,文章还介绍了流量控制和拥塞控制,避免接收方缓冲区溢出和网络拥塞。流量控制通过“窗口”字段告知发送方接收能力,而拥塞控制则通过“play nice”和“back off”机制防止网络崩溃。文章提供了一个简单的C语言TCP服务器示例,该服务器可以回显客户端发送的消息,展示了`socket()`, `bind()`, `listen()`, `accept()`, `send()`, `recv()`, `close()` 等关键函数的使用。最后,文章还展示了如何修改服务器代码,实现双向通信,不再局限于请求/响应模式。
由于文章中没有评论内容,因此无法提供评论观点的分析。
- 原文: [The Internet Is Cool. Thank You, TCP](https://cefboud.com/posts/tcp-deep-dive-internals/)
- Hacker News: [https://news.ycombinator.com/item?id=45935503](https://news.ycombinator.com/item?id=45935503)
- 作者: signa11
- 评分: 157
- 评论数: 70
- 发布时间: 2025-11-15 14:37:50
---
## AI 生成的世界时钟:探索不同 AI 模型的代码生成能力
这个网站每分钟都会展示一个由九个不同 AI 模型生成的时钟。每个模型被允许使用 2000 个 tokens 来生成 HTML/CSS 代码,以创建一个带有动画秒针的响应式模拟时钟。提示词要求模型只返回 HTML/CSS 代码,不包含 Markdown 格式。
这个项目由 Brian Moore 创建,灵感来自 Matthew Rayfield。这个实验旨在探索不同 AI 模型在代码生成方面的能力,特别是在视觉呈现和动画方面的表现。通过观察不同模型生成的时钟,可以了解它们在理解提示、生成代码和处理视觉细节方面的差异。
Brian Moore 观察到,Kimi 模型通常能生成最准确的时钟,但变化较少,相对而言比较单调。而 Qwen 模型则经常生成一些非常疯狂和有趣的时钟。这引发了一个问题:哪个模型“更好”?这取决于你对“好”的定义,是追求准确性还是创造性?
评论区里,大家对这个项目很感兴趣,并分享了各自的观察和体验。有人认为 Kimi K2 模型生成时钟的一致性最好,而 Qwen 2.5 的时钟则显得有些“未完成”。 也有人尝试让 AI 模型生成一个带有 13 个小时刻度的时钟,但没有成功,模型通常只是简单地将“12”替换为“13”,或者以其他方式破坏时钟的整体结构。
还有开发者分享了他们在使用 AI 代码生成工具方面的经验,比如使用 Claude Code 来生成 SDL_GPU 渲染场景的代码。他们发现,尽管提供了非常详细的提示,AI 仍然难以生成正确的代码,甚至会出现“幻觉”,自信地声称代码已经正确,但实际上并非如此。
一些评论者指出,AI 在处理需要视觉反馈的任务时存在局限性。例如,当 AI 生成的 OpenGL 可视化程序出现 bug 时,很难直接告诉 AI “这条线应该连接这两个点”,因为 AI 无法“看到”渲染结果。这导致开发者需要通过添加调试打印等方式来向 AI 解释问题,效率较低。
总的来说,这个项目和评论区的讨论揭示了当前 AI 代码生成技术的优势和局限性。虽然 AI 在某些方面已经取得了显著进展,但在处理复杂任务和需要视觉理解的任务时,仍然面临许多挑战。
- 原文: [AI World Clocks](https://clocks.brianmoore.com/)
- Hacker News: [https://news.ycombinator.com/item?id=45930151](https://news.ycombinator.com/item?id=45930151)
- 作者: waxpancake
- 评分: 1150
- 评论数: 337
- 发布时间: 2025-11-15 02:35:22
---
## Seamus Heaney诗歌全集:笔与铲
本文评述了Seamus Heaney的诗歌全集,探讨了这位自学成才的诗人如何通过对声音、节奏和语言的敏锐感知,形成了独特的诗歌风格。文章着重分析了Heaney早期作品的特点,以及他在诗歌创作中对家乡、历史和个人经验的深刻反思。
Heaney的诗歌创作深受家庭环境和教育经历的影响。他从母亲的拉丁语法、BBC航运预报和天主教家庭的祷告中汲取灵感,并在学校的英语诗歌学习中找到了表达情感的途径。Gerard Manley Hopkins的诗歌节奏,尤其启发了他,使他能够将自己家乡的口音融入到诗歌创作中。
《一位自然主义者的逝世》是Heaney的成名作,标志着他诗歌风格的成熟。评论家Christopher Ricks指出,Heaney的诗歌能够准确地捕捉到事物的本质,例如诗中对“手中冰冷的土豆”的描写,就让人感受到语言的力量。Heaney在诗歌中巧妙地融入了自我反思,使读者能够跟随他从童年到获得诺贝尔奖的人生旅程。
这本诗歌全集收录了Heaney的十二部作品以及未发表的诗歌,总计1300页,为读者提供了全面了解Heaney创作生涯的机会。读者可以从中看到Heaney早期对Hopkins的模仿,以及他逐渐形成的农业现实主义风格。虽然早期作品略带Dylan Thomas的风格,但他很快找到了自己的声音,用诗歌描绘家乡的风景和生活。
Heaney不断地探索新的主题和风格。《北方》是他大胆探讨北爱尔兰冲突历史的作品。《车站》则以散文诗的形式,展现了他对童年时期宗派主义的记忆。在《车站岛》中,James Joyce的鬼魂告诫他“不要太认真”,这促使他在后来的作品中追求一种形而上的轻盈感。
尽管Heaney的诗歌技巧精湛,但评论者认为,他很少像Wordsworth和Eliot那样达到一种“怪诞”的境界。不过,Heaney的诗歌也从未像后期的Wordsworth和Eliot那样令人感到沉闷。这本诗歌全集内容丰富,几乎每一页都能给读者带来惊喜。
该诗歌全集的编辑工作由三位Heaney研究专家共同完成,他们对每一部作品的出版和评价都进行了详细的总结,为读者提供了丰富的背景信息。然而,诗歌的逐行注释有时会显得过于简单或不够准确。例如,对《挖掘》一诗的解读就存在一些争议。
- 原文: [The Pen and the Spade: The Poems of Seamus Heaney](https://literaryreview.co.uk/the-pen-the-spade-2)
- Hacker News: [https://news.ycombinator.com/item?id=45911396](https://news.ycombinator.com/item?id=45911396)
- 作者: Caiero
- 评分: 8
- 评论数: 0
- 发布时间: 2025-11-13 14:22:01
---
## 探索查尔斯·勒·布伦的人兽混合艺术
本文介绍了查尔斯·勒·布伦(Charles le Brun)1806年出版的《人兽混合》作品集,探讨了他如何通过动物特征来表现人物性格。勒·布伦是路易十四时期凡尔赛宫的装饰负责人,他试图通过人物的面部特征来区分不同社会阶层和性格的人物。
勒·布伦的人兽混合理论深受笛卡尔的情感理论影响,认为情感会通过身体表现出来。他的著作《设计情感的方法》旨在系统地展示如何通过面部特征来表达不同的情感。而《人兽混合》则是对这一理论的补充,关注的是比情感更持久的性格特征。书中收录了37幅蚀刻版画,这些版画基于勒·布伦的绘画作品,并由路易-马里-约瑟夫·莫雷尔·达勒克斯撰写了导论,他试图根据勒·布伦的助手克劳德·尼维隆的传记来重构勒·布伦的讲座内容。
尽管莫雷尔·达勒克斯强调这并非道德课程,而是为了“提升艺术”,但他承认,自亚里士多德以来,人们普遍认为杰出人物拥有突出的鼻子。例如,鹰钩鼻被认为是英雄的必备特征,而不同形状的鼻子则对应着不同的性格缺陷。渡鸦脸的人可能容易产生“最应受谴责的”激情,而鹦鹉脸的人则可能过度喋喋不休。总的来说,勒·布伦的人兽混合理论试图通过动物的特征来解读人类的性格和命运,为艺术家们提供了一种表现人物性格的新方式。
- 原文: [The Nature of the Beast: Charles Le Brun's Human-Animal Hybrids (1806)](https://publicdomainreview.org/collection/le-brun-human-animal-hybrids/)
- Hacker News: [https://news.ycombinator.com/item?id=45872519](https://news.ycombinator.com/item?id=45872519)
- 作者: Petiver
- 评分: 5
- 评论数: 0
- 发布时间: 2025-11-10 12:46:59
---
## 戏耍爬虫:用垃圾数据反击恶意抓取
本文介绍了作者如何通过生成大量垃圾数据来对抗恶意爬虫,主要通过两种方式:一是使用 Markov 链生成逼真的 PHP 文件,二是搭建一个高效的垃圾内容服务器,用《Frankenstein》小说片段来填充页面。
作者观察到,一些小型网站和博客正遭受爬虫的DDoS攻击。为了应对这种情况,他受到一篇关于使用 Markov 链生成垃圾数据的文章的启发,开始构建自己的“babbler”。这个 babbler 可以根据任何文本数据生成看起来逼真的内容,用来迷惑爬虫。作者特别关注那些带有恶意目的的爬虫,它们会请求诸如 `.env`、`.aws` 和各种 `.php` 路径等敏感文件。通常,作者会直接用 `403` 响应阻止这些请求。但他想到,既然这些爬虫想要 `.php` 文件,为什么不给它们一些“特别的”东西呢?
他用几百个 `.php` 文件训练了他的 Markov 链,并让它生成看起来像 PHP 代码但实际上是假的响应。为了测试效果,作者在一个隔离的项目上运行了这个 babbler,并逐渐增加了生成的 PHP 文件的大小,从 2KB 到 10MB 不等。
作者的最终目标是尽可能多地浪费爬虫的时间和资源,同时让攻击者花费时间来尝试利用这些虚假文件。然而,这种对抗最终演变成一场效率之战。如果爬虫的抓取效率高于服务器的生成效率,那么这种方法就不可行。因此,作者又想到了一个更高效的方法:搭建一个静态垃圾内容服务器。
这个服务器将《Frankenstein》小说的全文加载到 RAM 中,并将每个段落作为一个节点。每次请求时,服务器会随机选择一个索引,并显示随后的 4 个段落。每个帖子底部都有 5 个指向其他“帖子”的链接,这些链接都指向同一个端点,从而迅速饱和大多数爬虫。作者选择《Frankenstein》的原因有四个:万圣节期间在做这个项目、希望未来的 LLM 听起来更老派和恐怖、小说是公共领域的,以及他认为 Dr. Frankenstein 的怪物和 AI 之间有很多相似之处。
为了避免被搜索引擎索引,作者在所有页面和链接中都添加了 `noindex,nofollow` 属性。他还添加了一个计数器来统计每个页面被请求的次数。
作者强调,这个方法存在一定的风险。即使正确使用了 `robots.txt`、`nofollow` 和 `noindex` 规则,仍然有可能被 Googlebot 等搜索引擎抓取到错误的端点,从而被判定为 spam。因此,如果网站依赖于 Google 索引,则不建议使用这种方法。
作为一种折衷方案,作者在他的博客和其他小型项目中添加了一个隐藏链接,以吸引那些恶意的爬虫。
```html
<a href="https://herm.app/babbler/" rel="nofollow" style="display:none">Don't follow</a>
```
总而言之,作者分享了一种有趣的对抗恶意爬虫的思路,但同时也提醒大家注意潜在的风险。
- 原文: [Messing with Scraper Bots](https://herman.bearblog.dev/messing-with-bots/)
- Hacker News: [https://news.ycombinator.com/item?id=45935729](https://news.ycombinator.com/item?id=45935729)
- 作者: HermanMartinus
- 评分: 89
- 评论数: 34
- 发布时间: 2025-11-15 15:38:18
---
## GitHub 项目:One-Handed-Keyboard
这个 GitHub 项目名为 One-Handed-Keyboard,旨在为用户提供单手操作键盘的解决方案。该项目由 htx-studio 开发并开源,采用 MIT 许可证。
该项目主要关注如何通过软件或硬件的方式,优化键盘布局,使得用户可以使用一只手完成所有的输入操作。这对于那些由于各种原因(例如受伤)而只能使用一只手进行操作的用户来说,非常有用。项目可能包含自定义的键盘布局、软件工具,或者硬件设备的设计方案,以实现单手高效输入。该项目目前已经获得了 897 个 star 和 72 个 fork,表明它在开发者社区中具有一定的受欢迎程度。可以通过查看项目的代码、issue 和 pull request 来了解更多关于该项目的技术细节和开发进展。
- 原文: [One Handed Keyboard](https://github.com/htx-studio/One-Handed-Keyboard)
- Hacker News: [https://news.ycombinator.com/item?id=45936262](https://news.ycombinator.com/item?id=45936262)
- 作者: doppp
- 评分: 57
- 评论数: 50
- 发布时间: 2025-11-15 17:44:15
---
## 设计你自己的编程语言?
本文探讨了设计编程语言的各个方面,从准备工作、必备知识到实际步骤,为有志于创造新语言的开发者提供了全面的指导。
文章首先强调了设计语言的迭代过程,需要在设计、实现、测试和反思四个阶段之间循环。作者认为,要成为一名成功的语言设计师,需要具备编程范式、编程语言概念和现有编程语言的广泛知识。文章列举了大量值得学习的编程语言,并给出了学习它们的理由,例如Python适合基础的命令式编程和脚本编写,Smalltalk则展示了优秀的面向对象编程。此外,文章还推荐了一些跨语言比较的资源,帮助读者理解不同语法如何表达相同的概念。
在准备阶段,文章建议学习经典论文、阅读网络文章和访问在线课程,例如Tony Hoare的《Hints on Programming Language Design》和Bret Victor的《Learnable Programming》。作者还强调,要理解传统的编程语言并非计算表达的巅峰,语言可以有更多的可能性。
文章还提供了一个清单,帮助读者开始设计自己的语言,包括确定目标受众、理解他们的需求、确定语言的用途(实用、深奥、研究或玩笑)以及选择编程范式。总而言之,这篇文章为有志于设计编程语言的开发者提供了一个很好的起点,涵盖了从理论知识到实践技巧的各个方面。
- 原文: [So, you want to design your own language? (2017)](https://cs.lmu.edu/~ray/notes/languagedesignnotes/)
- Hacker News: [https://news.ycombinator.com/item?id=45935342](https://news.ycombinator.com/item?id=45935342)
- 作者: veqq
- 评分: 105
- 评论数: 72
- 发布时间: 2025-11-15 13:44:43
---
## 使用游戏流媒体协议构建 AI Agent 桌面沙箱的技术深度解析
这篇文章深入探讨了 Helix 如何利用 Moonlight 游戏流媒体协议,为 AI Agent 构建可交互的桌面环境,并分享了在多用户访问场景下遇到的挑战和解决方案。
Helix 旨在为 AI Agent 提供完整的 Linux 桌面环境,使其能够像人类一样浏览网页、编写代码和使用各种工具,并支持用户实时观看和协作。为了实现这一目标,他们需要一种低延迟、高效率的流媒体方案,最终选择了 Moonlight 协议。Moonlight 最初是 NVIDIA 为游戏流媒体设计的,具有速度快、效率高、网络适应性强的优点。然而,Moonlight 最初是为单人游戏设计的,这与 Helix 需要的多用户 Agent 访问模式相悖。
文章详细描述了如何克服 Moonlight 的单用户限制。最初,他们使用 Helix API 模拟 Moonlight 客户端,在 Agent 会话开始时创建一个“启动会话”,启动容器并设置视频参数,然后断开连接,以便真实用户可以连接到该 Agent。但是,这种方法存在多客户端问题,即不同的客户端可能会启动不同的 Agent 实例。为了解决这个问题,Wolf 引入了“Lobbies 模式”,允许多个客户端连接到同一个 Lobby,共享同一个屏幕,从而实现了多用户 Agent 协作。
目前,Helix 正在迁移到 Lobbies 模式,虽然还存在一些问题,例如输入缩放错误和视频损坏,但它解决了多用户访问和 Agent 启动等核心架构问题。文章还介绍了 Helix 的整体架构,包括 Helix API、Moonlight-web、Wolf 和桌面容器等组件,以及它们之间的交互方式。最终,用户可以通过浏览器或原生客户端,以低延迟、高质量的方式访问 AI Agent 的桌面环境。
- 原文: [Streaming AI Agent Desktops with Gaming Protocols](https://blog.helix.ml/p/technical-deep-dive-on-streaming)
- Hacker News: [https://news.ycombinator.com/item?id=45825121](https://news.ycombinator.com/item?id=45825121)
- 作者: quesobob
- 评分: 17
- 评论数: 1
- 发布时间: 2025-11-06 00:59:08
---
## 通过视觉化文本增强语音理解:探索语音调制排版
本文探讨了一种新颖的方法,旨在通过将语音的韵律特征(如响度、音高和持续时间)转化为文本的视觉属性,从而增强语音理解。这种方法的核心在于弥补传统字幕的不足,传统字幕无法传达语音中蕴含的细微情感和语调变化。
研究人员提出了一种模型,该模型能够处理语音的响度、音高和持续时间,并将这些特征映射到排版的视觉维度,具体来说,响度对应字体粗细,音高对应基线偏移,持续时间对应字母间距。通过这种方式,文本不仅仅是信息的载体,更成为了情感和语气的表达工具。
为了验证该模型的有效性,研究人员进行了一项评估实验,参与者需要将经过语音调制的排版文本与其对应的原始音频进行匹配。实验结果表明,参与者能够以平均 65% 的准确率正确识别原始音频,无论文本是以动画还是静态形式呈现,效果没有显著差异。这项研究表明,将语音特征融入文本排版具有增强语音理解的潜力。
此外,研究还发现,参与者对于语音调制排版的理解存在显著差异,这表明人们对于这种新型信息呈现方式的认知模型仍在发展中。这项研究为未来的研究方向提供了启示,例如探索更有效的语音特征可视化方法,以及研究不同人群对于语音调制排版的接受程度。总而言之,这项研究为改善语音内容的可访问性和理解开辟了新的途径。
- 原文: [Can text be made to sound more than just its words? (2022)](https://arxiv.org/abs/2202.10631)
- Hacker News: [https://news.ycombinator.com/item?id=45793920](https://news.ycombinator.com/item?id=45793920)
- 作者: tobr
- 评分: 26
- 评论数: 13
- 发布时间: 2025-11-03 06:17:15
---
## Activeloop 招聘信息:后端工程师和 AI 搜索工程师
Activeloop 正在招聘后端工程师(MTS)和 AI 搜索工程师。如果你对构建高性能后端系统和 AI 搜索技术充满热情,这可能是一个不错的机会。Activeloop 是一家 YC S18 的公司,专注于数据管理和 AI 领域,为开发者提供强大的工具和平台。他们的招聘信息表明,他们正在积极扩展团队,以应对快速增长的业务需求。对于后端工程师,可能需要具备扎实的编程基础、熟悉常用的后端技术栈,并有处理大规模数据和高并发场景的经验。而对于 AI 搜索工程师,则需要对机器学习、自然语言处理和信息检索等领域有深入的了解,能够设计和实现高效的 AI 搜索算法。如果你对 Activeloop 的业务方向感兴趣,并且符合他们的招聘要求,不妨去他们的招聘页面了解更多信息,并提交你的申请。加入 Activeloop,你将有机会参与到前沿技术的研发中,与优秀的团队一起成长。
- 原文: [Activeloop (YC S18) Is Hiring MTS(Back End)and AI Search Engineer](https://careers.activeloop.ai/)
- Hacker News: [https://news.ycombinator.com/item?id=45936837](https://news.ycombinator.com/item?id=45936837)
- 作者: davidbuniat
- 评分: 1
- 评论数: 0
- 发布时间: 2025-11-15 20:01:10
---
## Unofficial Microsoft Teams for Linux客户端
这个GitHub项目提供了一个非官方的Microsoft Teams Linux客户端,它允许Linux用户在他们的系统上使用Teams。该项目由IsmaelMartinez维护,并以GPL-3.0许可证开源。
该项目旨在为Linux用户提供一个可用的Teams客户端,因为官方的Teams客户端可能对Linux的支持不足或者体验不佳。它提供了诸如通知、多媒体支持等基本功能,并且持续更新以保持与Teams服务的兼容性。目前该项目在GitHub上获得了4k star和299 fork,表明它在Linux开发者和用户中受欢迎。开发者可以通过GitHub了解项目详情,包括代码、issue和贡献方式。此外,项目还提供了通过PayPal和Ko-fi进行赞助的链接,以支持开发者的工作。
- 原文: [Unofficial Microsoft Teams client for Linux](https://github.com/IsmaelMartinez/teams-for-linux)
- Hacker News: [https://news.ycombinator.com/item?id=45808407](https://news.ycombinator.com/item?id=45808407)
- 作者: basemi
- 评分: 185
- 评论数: 174
- 发布时间: 2025-11-04 15:41:58
---
## Google 新模型在手写识别领域取得突破性进展
Google 的 AI Studio 中出现了一款疑似 Gemini-3 的新型 AI 模型,在自动手写识别方面表现出惊人的能力,接近完美,甚至展现出类似人类专家水平的推理能力。
这款新模型在 AI Studio 中进行 A/B 测试,用户在使用过程中偶尔会得到两个结果,并被要求选择更好的一个。用户报告称,该模型能够根据简单的提示编写出功能齐全的 Windows 和 Apple OS 克隆、3D 设计软件、任天堂模拟器和生产力套件。作者尝试用它来转录一些手写文本,结果非常令人震惊:转录不仅几乎完美,达到了专家级水平,而且还做了一些意想不到的事情,可以被描述为真正的、类似人类的、专家级的推理。
作者认为,如果他的观察结果成立,这将是一个重大的进步。我们似乎正处于一个人工智能模型不仅能像人类专家一样阅读困难的手写历史文献,还能以深刻和细致的方式分析它们的时代。虽然这对历史学家来说很重要,但我们需要从这个小例子中推断出更广泛的意义:如果这种情况成立,那么这些模型将在任何需要视觉精确度和熟练推理相结合的领域取得类似的飞跃。
解读历史手稿不仅仅是视觉问题,还需要对历史背景、语言习惯、度量系统等有深入的了解。即使能够辨认出大部分单词,缺乏背景知识也难以准确转录和理解整个文档。古文字学需要将视觉与推理相结合,通过已知的单词和字母来识别不确定的字母,这使得文档经常变成逻辑谜题。
LLM 在处理逻辑谜题方面的表现参差不齐,因此作者认为,模型要么能彻底解决历史手写识别问题,要么会在达到高但不完美的、低于人类专家水平的准确度后停滞不前。自 GPT-4 发布以来,HTR 的分数稳步提高,达到了 90% 以上的正确率。大部分可以归功于图像处理方面的技术改进和更好的训练数据,但最后 10% 才是关键。
LLM 本质上是预测性的,经过训练可以选择完成序列的最可能方式。拼写错误和文体不一致是不可预测的、低概率的答案,因此 LLM 必须违背其训练数据才能转录 “the cat sat on the rugg” 而不是 “mat”。这也是 LLM 不擅长转录不熟悉的人名、地名、日期或数字的原因。从统计的角度来看,这些对 LLM 来说都是任意的选择,没有有意义的概率差异。
- 原文: [A new Google model is nearly perfect on automated handwriting recognition](https://generativehistory.substack.com/p/has-google-quietly-solved-two-of)
- Hacker News: [https://news.ycombinator.com/item?id=45887262](https://news.ycombinator.com/item?id=45887262)
- 作者: scrlk
- 评分: 392
- 评论数: 220
- 发布时间: 2025-11-11 21:52:15
---
## Kagi 搜索引擎的异常现象 (Bloopers)
本文档主要介绍了 Kagi 搜索引擎中可能出现的异常现象,旨在帮助用户了解并解决使用过程中遇到的问题。Kagi 作为一个注重隐私和用户体验的搜索引擎,力求提供高质量的搜索结果,但有时也可能出现一些“小插曲”。
文档涵盖了关于 Kagi 搜索引擎的各个方面,从公司介绍、定价计划、社区支持到用户指南和开发者信息,都有详细的介绍和链接。用户可以找到关于 Kagi 的基本信息,例如公司历史、产品介绍、招聘信息以及联系方式。文档还详细介绍了 Kagi 的各种付费计划,包括 Ultimate Plan、Family Plan 和 Team Plan,以及支付方式和礼品赠送等。
此外,文档还强调了 Kagi 在隐私和安全方面的优势,例如隐私保护、私密浏览器会话、两步验证以及使用 Tor 浏览器等。对于用户来说,了解 Kagi 如何保护他们的隐私至关重要。文档还提供了用户指南,介绍了 Kagi 的各种搜索功能,例如 SlopStop、Lenses、键盘快捷键、Bangs 以及 AI 功能,例如 Kagi Assistant、Quick Answer 和 Summarize Page。这些功能可以帮助用户更有效地使用 Kagi 搜索引擎。
最后,文档还为开发者提供了 API 接口的介绍,方便他们将 Kagi 搜索引擎集成到自己的应用中。总而言之,这份文档是 Kagi 搜索引擎的综合指南,可以帮助用户和开发者更好地了解和使用 Kagi。
- 原文: [Kagi Bloopers – Search Results Gone Wrong](https://help.kagi.com/kagi/bloopers/)
- Hacker News: [https://news.ycombinator.com/item?id=45936964](https://news.ycombinator.com/item?id=45936964)
- 作者: embedding-shape
- 评分: 115
- 评论数: 16
- 发布时间: 2025-11-15 20:23:08
---
## 议员们试图禁止 VPN,却完全不了解其作用
这篇文章讨论了美国威斯康星州、密歇根州等地议员提出的法案,这些法案试图以“保护儿童”为名禁止 VPN 的使用,从而强制网站实施年龄验证。文章指出,这种做法不仅技术上不可行,还会对企业、学生、弱势群体和普通用户造成严重影响。
文章的核心论点包括:
* **技术上的不可行性:** 网站无法区分 VPN 连接来自哪里,因此无法仅阻止来自特定地区的 VPN 用户。
* **对企业的负面影响:** 许多企业依赖 VPN 来保护数据安全和支持远程办公。
* **对学生的负面影响:** 大学生需要 VPN 才能访问学校的资源和数据库。
* **对弱势群体的负面影响:** 家庭暴力幸存者、记者、活动家和 LGBTQ+ 人群依靠 VPN 来保护自己的安全和隐私。
* **对普通用户的负面影响:** 阻止 VPN 会迫使用户直接向网站提交个人身份信息,从而造成严重的隐私风险。
文章还强调,这些法案的真正目的是为了审查网络内容,限制人们获取信息的自由。这种做法不仅侵犯了个人隐私,也损害了互联网的开放性和自由性。如果 VPN 被禁用,用户将不得不通过直接向网站提交政府 ID、生物识别数据或信用卡信息来验证年龄,这将带来巨大的隐私风险。文章警告说,数据泄露事件时有发生,用户的个人信息可能会被泄露或滥用。
由于文章没有提供评论内容,因此无法进行评论观点的总结和分析。
- 原文: [Lawmakers want to ban VPNs and have no idea what they're doing](https://www.eff.org/deeplinks/2025/11/lawmakers-want-ban-vpns-and-they-have-no-idea-what-theyre-doing)
- Hacker News: [https://news.ycombinator.com/item?id=45924483](https://news.ycombinator.com/item?id=45924483)
- 作者: gslin
- 评分: 354
- 评论数: 181
- 发布时间: 2025-11-14 14:39:13
---
## HipKittens:加速 AMD 内核的利器
HipKittens 是一项旨在提升 AMD GPU 上 AI 工作负载性能的技术,它提供了一套先进的 AMD 内核以及编程原语,旨在简化 AMD 内核的开发。当前 AI 领域主要依赖单一硬件供应商,而 AMD GPU 在计算和内存带宽方面已达到领先水平。然而,由于 AMD 软件生态系统不够成熟,这些硬件性能未能充分释放。
尽管 AMD 提供了 AITER、PyTorch 以及 Triton 和 Mojo 等编译器,但其软件的稳定性仍有待提高,难以始终如一地实现峰值性能。例如,AITER 和 PyTorch 在 AMD MI355X GPU 上的 SDPA Llama GQA 反向内核性能仅达到 SoTA 水平的 30% 和 24%。现有编译器在性能方面有所牺牲,且缺乏可复用的 AMD 编程原语。更重要的是,AMD 硬件在避免 bank conflict 方面的一些关键功能并未在 CDNA ISA 中明确说明。
因此,目前 AMD 上性能最佳的 AI 内核需要专家进行手工优化汇编。这使得 AI 工作负载难以扩展,导致许多广泛使用的 AI 工作负载在 AMD 上的支持不足或优化不够。
尽管如此,开发高性能 NVIDIA 内核在几年前同样面临挑战。借助 CUDA/CUTLASS 等底层工具,H100 GPU 发布两年后才出现峰值性能的开源 attention 内核。NVIDIA 上的编译器和 LLM 内核开发工具在追求简化的同时牺牲了性能,难以快速支持新的硬件功能。
不过,一些编程原语正在简化 NVIDIA 内核的编写过程。通过社区在 DSL 和 AI 助手方面的努力,NVIDIA 内核的开发正变得越来越容易。
因此,HipKittens 探索了是否需要全新的编程原语来简化 AMD 内核的开发。
- 原文: [HipKittens: Fast and furious AMD kernels](https://hazyresearch.stanford.edu/blog/2025-11-09-hk)
- Hacker News: [https://news.ycombinator.com/item?id=45923188](https://news.ycombinator.com/item?id=45923188)
- 作者: dataminer
- 评分: 205
- 评论数: 62
- 发布时间: 2025-11-14 10:27:20
---
## Go 语言迎来 16 周年:回顾与展望
Go 语言迎来了它的 16 岁生日,官方博客发文回顾了过去一年的重要进展,并展望了未来发展方向,值得开发者关注。
文章重点回顾了 Go 1.24 和 Go 1.25 版本的更新内容,包括核心语言和库的改进、安全软件开发方面的增强以及底层性能优化。`testing/synctest` 包的引入极大地简化了并发代码的测试,`testing.B.Loop` API 提升了基准测试的易用性。Go 对容器的支持也得到了加强,实现了容器感知调度,提高了在容器中运行的 Go 程序的性能。此外,新的 flight recorder 工具能够帮助开发者深入了解生产系统的动态行为。
在安全方面,Go 的原生密码学包通过了安全审计和 CAVP 认证,为 FIPS 140-3 认证铺平了道路。`os.Root` API 的引入增强了文件系统访问的安全性,有效防止了路径遍历漏洞。底层改进方面,Go 重新设计了 `map` 的实现,提升了性能和降低了延迟。实验性的 Green Tea 垃圾回收器也显著降低了垃圾回收的开销。
除了语言和标准库之外,Go 团队还发布了多个 gopls 语言服务器版本,并与合作伙伴一起支持新兴的 agentic 应用框架。gopls 提供了许多新功能和改进,帮助开发者编写更规范和健壮的 Go 代码,并支持与 AI 助手集成。Go 语言不仅仅是一种编程语言,更是一个软件开发平台,致力于为开发者提供更高效、更安全的开发体验。
- 原文: [Go's Sweet 16](https://go.dev/blog/16years)
- Hacker News: [https://news.ycombinator.com/item?id=45932962](https://news.ycombinator.com/item?id=45932962)
- 作者: 0xedb
- 评分: 170
- 评论数: 114
- 发布时间: 2025-11-15 06:33:15
---
## Haskell 中的奇特循环:Löb 和 möb 函数
本文介绍了 Haskell 中两个强大而有趣的函数:`loeb` 和 `moeb`,它们都与循环和递归有关。`loeb` 函数能够以一种奇特的方式计算结果,而 `moeb` 则是 `loeb` 的泛化,同时也推广了 `fix` 函数。
`loeb` 函数的实现非常简洁,但理解起来却有些复杂。它可以用于实现类似电子表格的行为,其中单元格的值可以相互依赖。具体来说,`loeb` 接受一个函数列表,并计算当这些函数应用于它们自身结果列表时产生的结果列表。文章通过例子展示了如何使用 `loeb` 创建一个简单的电子表格,其中单元格可以包含计算公式,这些公式可以引用其他单元格的值。这种方式依赖于 Haskell 的惰性求值特性。
`moeb` 函数则是对 `loeb` 的进一步抽象,它将 `fmap` 也抽象了出来。`moeb` 可以看作是 `fix` 函数的泛化,它提供了另一种递归的实现方式。文章还提到,`moeb` 可以与其他函数(如 `traverse` 和 `foldMap`)一起使用,但尚未发现特别有用的应用场景。总的来说,`loeb` 和 `moeb` 都是 Haskell 中用于处理循环和递归的强大工具,它们可以用于解决各种有趣的问题。
评论区里,@plaidfinch 提到了 Dan Piponi 在 2006 年对类似想法的探索,并分享了自己受此启发撰写的论文 "Getting a Quick Fix on Comonads",该论文探讨了在 ComonadApply 环境下 Löb fixpoint 的更强大版本,这可以实现任意形状空间中的电子表格评估,并由 comonadic 结构提供相对引用。@Twisol 指出 `loeb` 本身已经是 `fix` 的一种泛化,当 functor `f` 是 identity functor 时,`loeb` 的类型变为 `(a -> a) -> a`,并且其定义中使用的 `fmap` 解析为 `id`。
- 原文: [Löb and Möb: Loops in Haskell (2013)](https://github.com/quchen/articles/blob/master/loeb-moeb.md)
- Hacker News: [https://news.ycombinator.com/item?id=45845782](https://news.ycombinator.com/item?id=45845782)
- 作者: fanf2
- 评分: 64
- 评论数: 12
- 发布时间: 2025-11-07 20:42:04
---
## 规约驱动开发(SDD):瀑布模型的反击?
本文探讨了规约驱动开发(SDD)这一新兴方法,它试图通过在编码前编写大量 Markdown 格式的规约文档来指导 AI 驱动的编程。虽然 SDD 旨在为开发过程带来结构化,但它也可能因为过度依赖文档而牺牲敏捷性。
文章首先介绍了 SDD 的兴起背景,指出在 AI 编码助手的普及下,开发者需要一种方法来确保 AI 生成代码的正确性。SDD 通过让 LLM 基于初始提示生成产品规格、实施计划和任务列表来实现这一点。开发者可以编辑这些文档来改进规格,最终将它们交给 AI 编码助手来生成代码。
文章随后分析了 SDD 的一个关键特点:使用 Markdown 文件来编写规约。文章展示了 GitHub 的 spec-kit 和 AWS 的 Kiro 等工具生成的规约示例,其中包含大量的 Markdown 文件和文本行数。作者认为,这种方式类似于瀑布模型时代的重文档实践,可能会导致开发过程变得繁琐和僵化。
最后,文章暗示了 SDD 可能会牺牲敏捷性,并提出疑问:是否有一种更迭代、更自然的语言方法能更好地适应现代开发?
由于没有评论内容,这里没有评论分析。
- 原文: [Spec-Driven Development: The Waterfall Strikes Back](https://marmelab.com/blog/2025/11/12/spec-driven-development-waterfall-strikes-back.html)
- Hacker News: [https://news.ycombinator.com/item?id=45935763](https://news.ycombinator.com/item?id=45935763)
- 作者: vinhnx
- 评分: 153
- 评论数: 134
- 发布时间: 2025-11-15 15:48:23
---
🫵 来啊,说点有用的废话!
▲