zhulink logo
自动夜间模式 日间模式 夜间模式
侧栏
0

【HN中文日报】劲爆日报:Android 开放性告急!Postgres 怒怼 Kafka?还有AI图像编辑大乱斗!

意外富翁的头像
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20251029 今天的科技圈真热闹!Google Android 搞事情,强制开发者注册引争议,开源还能挺住吗?Postgres 实力秀肌肉,叫板 Kafka,小数据场景也能Hold住!想换编辑器?VS Code 玩家怒投 Helix,亲测有效!还有超迷你MCU实现语音功能,简直黑科技!AI图像编辑也卷起来了,各家模型PK,谁才是修图王者?想学德语?游戏化学习安排上!更多精彩,速戳原文! ![Hacker News 中文精选](/static/mascot_article.webp) --- ## 捍卫Android开放性:抵制Google强制开发者注册 Google宣布从明年开始,所有Android应用开发者必须先向Google注册才能开发应用,这一举措引发了关于Android开放性的讨论。注册需要支付费用、同意条款、提供身份证明、上传应用签名密钥,并列出所有应用标识符。 这项政策的出台意味着独立开发者和开源应用商店,如F-Droid,将面临巨大挑战。许多人担心这将扼杀Android的开放性,使其更像一个封闭的生态系统。文章呼吁开发者和用户采取行动,抵制这项政策的实施,包括签署公开信、向欧盟数字公平法案提交反馈、向美国司法部和联邦贸易委员会举报,以及向英国竞争与市场管理局举报等。 文章还鼓励大家通过社交媒体和博客发声,直接向Google反馈,并参与到Keep Android Open项目中,共同维护Android的开放性。一些媒体评论指出,Google的这一举措可能会损害F-Droid等开源项目的未来,限制侧载应用,并最终损害消费者的权益。 总而言之,这篇文章旨在引起开发者和用户对Google新政策的重视,并呼吁大家共同努力,捍卫Android的开放性,避免其走向封闭。文章提供了多种途径,让大家可以参与到抵制行动中,包括签署请愿书、向相关机构举报、以及在社交媒体上发声等。 - 原文: [Keep Android Open](http://keepandroidopen.org/) - Hacker News: [https://news.ycombinator.com/item?id=45742488](https://news.ycombinator.com/item?id=45742488) - 作者: LorenDB - 评分: 1602 - 评论数: 462 - 发布时间: 2025-10-29 12:03:41 --- ## 使用 Postgres 替代 Kafka?性能基准测试与场景分析 本文探讨了在某些场景下,使用 Postgres 替代 Kafka 是否可行,并进行了 pub/sub 消息系统和队列的性能基准测试。作者认为,在数据量不大的情况下,Postgres 凭借其简单、可扩展和可靠的特性,可以满足许多应用的需求,避免过度设计和引入不必要的复杂性。 文章首先指出技术圈存在两种阵营:一种追逐流行技术,另一种则注重常识和实用性。作者观察到,随着 "Small Data" 运动的兴起和 Postgres 的复兴,越来越多的人开始意识到,对于许多应用来说,并不需要 Kafka 这样高度优化和复杂的分布式系统。Postgres 可以替代 Elasticsearch、MongoDB、Redis 甚至 Kafka 等专用系统,以更少的开发工作量满足 80% 以上的使用场景。 文章随后进行了 Postgres 作为 pub/sub 消息系统和队列的性能基准测试。在 pub/sub 场景下,单台 c7i.xlarge 实例可以达到 4.8 MiB/s 的写入速度和 24.6 MiB/s 的读取速度(5 倍扇出)。更大的 c7i.24xlarge 实例则可以将写入速度提升到 238 MiB/s,读取速度提升到 1.16 GiB/s。在队列场景下,单台 c7i.xlarge 实例的吞吐量为 2.81 MiB/s,而 c7i.24xlarge 实例可以达到 19.7 MiB/s。 最后,文章讨论了何时应该考虑使用 Postgres 替代 Kafka。作者强调,对于 500 KB/s 甚至更低的工作负载,Kafka 并不是一个合适的选择。在选择技术方案时,应该综合考虑技术可行性和实际需求,避免盲目追求 "最佳" 技术,而忽略了简单实用的解决方案。 - 原文: [Kafka is Fast – I'll use Postgres](https://topicpartition.io/blog/postgres-pubsub-queue-benchmarks) - Hacker News: [https://news.ycombinator.com/item?id=45747018](https://news.ycombinator.com/item?id=45747018) - 作者: enether - 评分: 35 - 评论数: 3 - 发布时间: 2025-10-29 22:06:01 --- ## 从 VS Code 到 Helix:一次编辑器迁移的自述 本文讲述了作者从 VS Code 转向 Helix 编辑器的经历,探讨了自动化工具的利弊,以及选择 Helix 的原因和克服使用障碍的过程。 作者原本习惯使用 VS Code,因为它易于上手、应用广泛。但由于对微软公司及其产品策略的担忧,以及对美国技术依赖的反思,作者开始寻找替代方案。Helix 吸引作者的地方在于其开箱即用的特性和先选择后操作的模式,这与 Vim 繁琐的配置和操作方式形成鲜明对比。 尽管一开始担心学习成本,但作者通过官方教程快速掌握了 Helix 的基本操作,并发现其效率甚至高于 VS Code。Helix 的学习曲线迫使作者学习快捷键,反而提高了工作效率。此外,作者还推荐了一个第三方文档网站,该网站以用例为导向,更易于理解和学习。 总的来说,作者认为转向 Helix 是值得的,因为它不仅尊重用户的选择,还提供了高效的编辑体验。 - 原文: [From VS Code to Helix](https://ergaster.org/posts/2025/10/29-vscode-to-helix/) - Hacker News: [https://news.ycombinator.com/item?id=45746478](https://news.ycombinator.com/item?id=45746478) - 作者: todsacerdoti - 评分: 82 - 评论数: 36 - 发布时间: 2025-10-29 21:19:30 --- ## 使用 10 美分 MCU 实现语音功能:CH32V003 的音频潜力 本文探讨了如何在一款超低成本的 CH32V003 微控制器上实现音频播放和语音合成,展示了在资源有限的条件下,通过巧妙的压缩和算法选择,也能实现令人惊讶的功能。 文章首先介绍了作者尝试让 CH32V003 这款 10 美分的 RISC-V 芯片播放音频。由于芯片只有 16KB 的 Flash 空间,需要对音频进行极度压缩。作者对比了多种音频编码格式,包括 8-bit PCM、4-bit ADPCM 和 QOA,最终选择了 2-bit ADPCM。这种格式能将 6 秒的音频压缩到 12KB 以下,满足了存储空间的需求,并且音质尚可接受。 2-bit ADPCM 的原理是维护一个预测信号值和一个步长索引表,通过 2-bit 代码来调整预测值和步长索引。作者还分享了一个自制的 WAV 转 2-bit ADPCM 格式的工具。 除了直接存储音频数据,作者还尝试了 LPC 语音合成技术,即模拟人声的特征参数,而不是存储原始声音波形。通过集成 Talkie 库,可以在有限的空间内存储大量的词汇和短语。Talkie 库是 Texas Instruments LPC 语音合成架构的软件实现,曾在 Speak & Spell 等设备中使用。虽然 LPC 合成的声音听起来比较机械,但仍然清晰可懂。 总的来说,这篇文章展示了如何在极低的成本下,通过软件算法的优化,充分利用硬件资源,实现音频播放和语音合成功能,为嵌入式开发提供了新的思路。 - 原文: [I made a 10¢ MCU Talk](https://www.atomic14.com/2025/10/29/CH32V003-talking) - Hacker News: [https://news.ycombinator.com/item?id=45747112](https://news.ycombinator.com/item?id=45747112) - 作者: iamflimflam1 - 评分: 21 - 评论数: 4 - 发布时间: 2025-10-29 22:12:50 --- ## 从 AWS 到裸金属两年后:解答你的疑问 这篇文章探讨了 OneUptime 在将基础设施从 AWS 迁移到裸金属服务器两年后的经验,并解答了社区提出的关于成本、可靠性、运维等方面的疑问。迁移后,OneUptime 不仅节省了大量资金,还提高了性能和可靠性。 OneUptime 最初迁移到裸金属服务器是为了降低成本,最初每年节省 23 万美元,现在节省超过 120 万美元。他们尝试过 AWS 的 Savings Plans 和 Reserved Instances,但综合考虑 S3、出口流量和 Direct Connect 的成本后,裸金属方案仍然更具优势。迁移过程花费了工程师大约一周的时间,主要用于基础设施代码化、冒烟测试和备份策略优化。日常运维方面,工程师每月花费约 24 小时进行维护,并通过远程协助解决硬件问题。 为了解决单点故障问题,OneUptime 在法兰克福增加了第二个机架,并通过冗余 DWDM 连接到巴黎的主机房。他们还使用 4G/卫星连接建立独立的带外管理通道,以应对光纤事件。硬件生命周期方面,服务器按五年折旧,但配置了高性能的 CPU、内存和 NVMe 存储。即使定期更换硬件,总成本仍然低于优化后的 AWS 账单。OneUptime 仍然使用 AWS 的 Glacier 备份、CloudFront 边缘缓存和短期负载测试。 在可靠性方面,OneUptime 实现了 99.993% 的可用性,甚至避免了 AWS 区域性宕机。他们还通过了 SOC 2 Type II 和 ISO 27001 认证。 评论区主要关注点集中在成本计算的完整性、单点故障的风险、以及是否重新发明了 AWS 提供的管理服务。文章的回应强调了对所有相关成本的考虑,包括网络流量和管理费用,并详细说明了如何通过多机房和冗余连接来解决单点故障问题。同时,OneUptime 也承认,如果大量使用 AWS 特有的服务,那么留在 AWS 上可能更合适。 - 原文: [AWS to bare metal two years later: Answering your questions about leaving AWS](https://oneuptime.com/blog/post/2025-10-29-aws-to-bare-metal-two-years-later/view) - Hacker News: [https://news.ycombinator.com/item?id=45745281](https://news.ycombinator.com/item?id=45745281) - 作者: ndhandala - 评分: 312 - 评论数: 230 - 发布时间: 2025-10-29 19:14:38 --- ## Google 开发者验证计划与 Android 应用侧载的未来 本文讨论了 Google 新的开发者验证计划对 Android 开放生态的影响,以及其对用户自由安装应用和开发者直接分发应用的能力造成的限制。文章认为,Google 声称“侧载不会消失”的说法与事实不符,新的政策实际上会扼杀侧载的可能性。 文章指出,Google 的开发者验证计划要求开发者注册、付费、提供身份证明,并接受不容谈判的条款和条件。这意味着用户无法再像过去那样自由地安装来自任何来源的应用,开发者也无法直接与朋友、家人和社区分享应用,必须先获得 Google 的批准。这与 Android 一直以来标榜的“开放”特性背道而驰。 文章还质疑了 Google 关于“互联网侧载应用中的恶意软件比 Google Play 商店中的应用多 50 倍”的说法,并指出 Google Play 商店本身也存在恶意软件问题。文章认为,将应用分发的权力集中在一家公司手中存在风险,尤其是在该公司可能受到商业利益驱动的情况下。 文章最后呼吁用户和开发者行动起来,通过访问 keepandroidopen.org 等网站,了解如何联系代表机构,倡导保持 Android 生态系统的开放性,共同抵制 Google 的这一政策。开发者验证计划不仅威胁着 F-Droid 等自由软件分发平台,也威胁着新兴的商业应用商店。 - 原文: [What we talk about when we talk about sideloading](https://f-droid.org/2025/10/28/sideloading.html) - Hacker News: [https://news.ycombinator.com/item?id=45736479](https://news.ycombinator.com/item?id=45736479) - 作者: rom1v - 评分: 1364 - 评论数: 538 - 发布时间: 2025-10-29 02:02:36 --- ## 重现 1987 年的自制游戏系统:Z80 TV Game 这篇文章介绍了一个由日本电子爱好者在 1987 年完全从零开始开发的 8 位游戏机,名为 Z80 TV Game。尽管电路简单(仅需 19 个 IC,且没有专门的图形芯片),但它能够运行相当高级的游戏。 这款游戏机使用 4MHz Z80 处理器,拥有 32KB 的 ROM 卡带地址空间,16KB 的系统 ROM,以及 8KB 的独立视频 RAM。 它的图形分辨率为 168x210 像素,黑白显示,并提供 60Hz 的复合视频输出和 1 位音频输出。 控制器有一个,包含 4 个方向按钮和 2 个开火按钮。目前,已经有 26 款游戏为 Z80 TV Game 开发,包括 Mr. Isizu(Z80 TV Game 的设计者)开发的 6 款游戏,以及 Inufuto 开发的 20 款游戏。 文章还详细介绍了 Z80 TV Game 的技术细节,包括电路设计、控制器接口(兼容 Sega Master System 和 Mega Drive/Genesis 控制器),以及使用 EPROM 生成复合同步信号的非常规方法。文章还提到可以使用 4KB 到 64KB 之间的任何尺寸的 ROM,并提供了一个包含 16 个 32KB 游戏的复用卡带设计。 此外,还设计了一个实验性的 bank-switching 卡带 PCB,允许访问高达 256KB 的游戏。 在软件开发方面,文章提供了 Z80 TV Game 的内存映射和 I/O 映射,并介绍了可用于 C 语言编程的工具,例如 Z88DK 开发工具包、Cate(一种类 C 编程语言和多平台编译器)和 Cross-Lib(一个多平台 C 编程框架)。文章还提供了原理图、PCB Gerbers 文件和 KiCad 文件等下载资源,方便读者自行制作或修改。文章最后记录了硬件的两次修订,修复了初代原型中的一些问题。 - 原文: [Recreating a Homebrew Game System from 1987](https://alex-j-lowry.github.io/z80tvg.html) - Hacker News: [https://news.ycombinator.com/item?id=45746726](https://news.ycombinator.com/item?id=45746726) - 作者: voxadam - 评分: 14 - 评论数: 0 - 发布时间: 2025-10-29 21:42:05 --- ## ChatGPT 的 Atlas 浏览器:反 Web 的新尝试 OpenAI 推出了名为 Atlas 的浏览器,它与传统浏览器截然不同,采取了一种反 Web 的策略。本文深入探讨了 Atlas 的工作原理及其潜在的风险。 Atlas 的主要问题体现在三个方面:首先,它用 AI 生成的内容替代了真实的 Web 内容,但界面却伪装成 Web 页面。其次,用户体验依赖于猜测命令,而非点击链接。最后,用户实际上成为了浏览器的代理,而非浏览器为用户服务。Atlas 默认情况下不会直接带你访问 Web 页面,而是提供由 AI 合成的、类似于网页的结果,但缺乏指向原始网站的链接。这种方式将用户限制在 AI 生成的围墙花园内,无法接触到更广泛的网络信息。 此外,Atlas 采用了类似于早期命令行界面的交互方式,用户需要输入命令才能执行操作,这与现代浏览器通过点击链接进行导航的方式形成了鲜明对比。这种方式不仅效率低下,而且容易出错,因为用户需要猜测正确的命令语法。更重要的是,Atlas 可能会生成不准确甚至完全捏造的内容,这使得用户难以信任其提供的结果。 Atlas 试图让 ChatGPT 成为用户的代理,但实际上,用户却成为了 ChatGPT 的代理。用户需要花费大量精力来理解和适应浏览器的运作方式,而不是让浏览器真正地为用户提供便利。 总而言之,Atlas 浏览器试图通过 AI 技术来改变 Web 的使用方式,但其反 Web 的设计理念和不成熟的用户体验,使得它难以成为一个真正有用的工具。它更像是一个实验性的项目,旨在探索 AI 在浏览器领域的应用,但距离真正取代传统浏览器还有很长的路要走。 - 原文: [ChatGPT's Atlas: The Browser That's Anti-Web](https://www.anildash.com//2025/10/22/atlas-anti-web-browser/) - Hacker News: [https://news.ycombinator.com/item?id=45702397](https://news.ycombinator.com/item?id=45702397) - 作者: AndrewDucker - 评分: 566 - 评论数: 235 - 发布时间: 2025-10-25 17:08:26 --- ## 软件工程师中风幸存者实用指南 本文作者分享了自己作为一名中风幸存软件工程师的经验和建议,特别是针对那些因顶叶出血性中风并伴有癫痫后遗症的患者。作者强调了健康第一、减少压力、利用辅助工具和调整工作习惯的重要性,旨在帮助其他有类似经历的工程师更好地平衡工作和生活。 作者给出了九条实用建议: 1. **及时停止:** 疲劳、模糊、恶心等都是身体发出的停止信号,要立即休息。 2. **屏蔽干扰:** 使用耳机、眼罩等工具,尽可能在可控的环境中工作。 3. **健康至上:** 拒绝任何超出自身承受能力的要求。 4. **利用法律:** 了解并运用反歧视法等相关法律保护自身权益。 5. **单线程工作:** 减少上下文切换,集中精力完成一项任务。 6. **善用AI:** 让AI承担记忆和思考的任务,减轻大脑负担。 7. **高效利用时间:** 在精力充沛时处理重要任务,其余时间处理其他事务。 8. **减少注意力消耗:** 关闭不必要的通知,避免长时间的会议。 9. **避免长时间会议:** 邮件沟通更高效,减少不必要的社交。 作者还分享了一些研究,表明顶叶皮层在工作记忆和信息转换中扮演重要角色,频繁的上下文切换会增加大脑负担。中风后,病灶附近的组织可能处于过度兴奋状态,认知负荷过重会降低癫痫发作阈值。 评论区中,其他有类似经历的工程师也分享了自己的经验: * **@wjnc:** 建议公开自己的情况,让同事了解你的需求和原因,从而获得更多理解和支持。 * **@weddpros:** 分享了自己中风后的职业生涯,强调了WFH、限制压力、保证睡眠的重要性,并表示健身也有助于身体恢复。 * **@buserror:** 提醒大家不要过度工作,即使过去可以承受,也不要掉以轻心。同时要注意饮食,保持良好的生活习惯。 * **@hotpotat:** 分享了自己中风后的经历,庆幸自己是幸运者,并对其他中风患者表示鼓励。 评论区进一步强调了工作环境的重要性,如果工作环境不友好,这些建议可能难以实施。因此,选择一个支持员工健康的工作环境至关重要。 - 原文: [Tips for stroke-surviving software engineers](https://blog.j11y.io/2025-10-29_stroke_tips_for_engineers/) - Hacker News: [https://news.ycombinator.com/item?id=45742419](https://news.ycombinator.com/item?id=45742419) - 作者: padolsey - 评分: 358 - 评论数: 121 - 发布时间: 2025-10-29 11:51:56 --- ## App Store 上架:uBlock Origin Lite App Store 上架了一款名为 uBlock Origin Lite 的应用,引起了广泛关注。这款应用主打内容拦截功能,旨在为用户提供更清爽的浏览体验。 这款 uBlock Origin Lite 实际上是一个在 Safari 中使用的内容拦截器。它通过阻止广告、跟踪器和其他不需要的内容来优化网页浏览体验。该应用旨在减少数据使用量,提高页面加载速度,并增强用户隐私。它与 Safari 浏览器无缝集成,用户可以通过简单的设置来启用或禁用内容拦截。 该应用声称可以有效阻止各种类型的广告,包括横幅广告、弹出窗口和视频广告。它还可以阻止跟踪器,这些跟踪器通常用于收集用户的浏览习惯和个人信息。通过阻止这些跟踪器,uBlock Origin Lite 可以帮助用户保护自己的隐私。此外,该应用还可以阻止恶意软件和网络钓鱼网站,从而提高用户的安全性。 总的来说,uBlock Origin Lite 是一款功能强大的内容拦截器,可以帮助用户改善 Safari 浏览体验。它具有广告拦截、跟踪器阻止和恶意软件防护等功能,可以提高用户的浏览速度、节省数据使用量并增强隐私保护。对于注重浏览体验和隐私安全的用户来说,这款应用是一个不错的选择。 - 原文: [uBlock Origin Lite Apple App Store](https://apps.apple.com/in/app/ublock-origin-lite/id6745342698) - Hacker News: [https://news.ycombinator.com/item?id=45742446](https://news.ycombinator.com/item?id=45742446) - 作者: mumber_typhoon - 评分: 279 - 评论数: 134 - 发布时间: 2025-10-29 11:57:06 --- ## 恶意爬虫破坏了博主的周末 这篇文章讲述了博主 Bear Blog 在 10 月 25 日遭遇的一次重大服务中断,原因是反向代理服务器宕机,导致自定义域名超时。博主深入剖析了事故的根本原因,并分享了他为缓解未来类似问题所采取的措施。 文章指出,当前互联网流量的主要组成部分是各类爬虫,包括 AI 爬虫、恶意爬虫和未经检查的自动化爬虫。AI 爬虫为了训练大型语言模型而抓取数据,恶意爬虫则寻找网站漏洞,而未经检查的自动化爬虫则可能无意中导致网站遭受拒绝服务攻击 (DDoS)。博主利用 Cloudflare 提供的 Web 应用防火墙 (WAF) 规则、速率限制以及自定义代码来防御这些爬虫。 事故发生当天,大量博客遭受了 DDoS 攻击,反向代理服务器因请求过多而过载。尽管博主采取了缓解措施,但服务器仍然宕机。为了防止未来再次发生类似事件,博主采取了以下措施:增加监控冗余,采用更严格的速率限制和爬虫缓解措施,增加反向代理服务器的容量,设置自动重启机制,并添加了状态页面。 博主强调,公共互联网充斥着各种爬虫,网络环境日益恶劣。因此,维护互联网上那些有价值的空间变得尤为重要。 评论区中,@asplake 对博主关于恶意爬虫可能通过移动设备上的应用程序进行隧道传输的猜测表示赞同,并询问是否有其他证据支持这一观点。@uvaursi 则提议将所有内容转移到暗网,让企业在明网上向消费者销售商品,暗示对当前互联网环境的不满。 - 原文: [Aggressive bots ruined my weekend](https://herman.bearblog.dev/agressive-bots/) - Hacker News: [https://news.ycombinator.com/item?id=45745072](https://news.ycombinator.com/item?id=45745072) - 作者: shaunpud - 评分: 115 - 评论数: 50 - 发布时间: 2025-10-29 18:47:25 --- ## SpiderMonkey 垃圾回收器详解 本文档深入探讨了 SpiderMonkey 的垃圾回收器(GC),它是 Firefox 浏览器引擎的关键组件,负责 JavaScript 数据结构的内存分配和释放。SpiderMonkey GC 的目标是在尽可能短的时间内回收尽可能多的垃圾数据,它不仅处理 JavaScript 数据,还管理一些 SpiderMonkey 内部数据结构。 SpiderMonkey 的垃圾回收器是一个混合追踪回收器,具备多种特性:精确性、增量性、分代、部分并发、并行、压缩以及分区堆。精确性是指 GC 能够准确识别内存分配的布局和栈根的位置,避免不必要的保守回收。增量式回收将整个回收过程分解为多个小片段,减少对用户体验的影响。分代回收则基于对象生命周期长短将内存划分为不同的“代”,年轻代回收频率高,老年代回收频率低。 此外,SpiderMonkey GC 还具备一定的并发和并行能力,能够利用多核 CPU 提高回收效率。压缩式回收通过在 arena(通常称为 slabs)之间移动分配的数据,来减少外部碎片。分区堆则将堆内存划分为多个独立的“区”,允许独立回收,从而进一步提高增量回收的效率。 评论区中,有开发者表示 SpiderMonkey GC 的 "precise" (精确) 特性给他留下了深刻的印象,这是一个值得关注的亮点。 - 原文: [SpiderMonkey Garbage Collector](https://firefox-source-docs.mozilla.org/js/gc.html) - Hacker News: [https://news.ycombinator.com/item?id=45744395](https://news.ycombinator.com/item?id=45744395) - 作者: sebg - 评分: 54 - 评论数: 1 - 发布时间: 2025-10-29 17:06:36 --- ## Glyph:通过视觉-文本压缩扩展上下文窗口 Glyph 是一种通过视觉-文本压缩来扩展上下文长度的框架,它将长文本序列渲染成图像,并使用视觉-语言模型 (VLM) 处理,从而将长上下文建模的挑战转化为多模态问题,显著降低计算和内存成本,同时保留语义信息。 Glyph 的核心思想是利用 VLM 处理图像的能力,将长文本渲染成紧凑的图像,从而实现输入 token 的压缩。 传统的长文本处理方法直接将文本输入到 LLM 中,而 Glyph 则通过视觉-文本压缩,实现了更高的压缩率和更快的推理速度。 该框架在 LongBench 和 MRCR 数据集上取得了有竞争力的性能,同时在 128K token 的输入上,相比于文本 backbone 模型,提供了显著的压缩和推理加速。 使用 Glyph 的步骤主要包括:安装依赖、配置渲染参数、图像渲染和模型部署。 首先,需要安装必要的依赖,例如 transformers 和 vllm。 其次,可以根据需求自定义渲染配置,例如调整 newline 行为和 DPI 设置,以影响压缩比。 然后,使用提供的脚本将长文本渲染成图像。 最后,可以使用 vLLM 加速模型部署,从而提高推理吞吐量和响应速度。 该项目还提供了一个 demo 脚本,可以比较 baseline 文本模型 (如 Qwen3/GLM4) 和 Glyph 的长上下文推理效率。 用户可以通过运行 `run_demo_compared.sh` 脚本,启动文本 LLM 和 Glyph,并使用简单的测试界面进行长上下文问答。 该模型基于 `GLM-4.1V-9B-Base` 构建,并且在 Hugging Face 上公开提供。 Glyph 的持续预训练数据将被添加到新版本的 GLM-4.1V-9B-Base 中,并将在稍后发布。 - 原文: [Glyph: Scaling Context Windows via Visual-Text Compression](https://github.com/thu-coai/Glyph) - Hacker News: [https://news.ycombinator.com/item?id=45713566](https://news.ycombinator.com/item?id=45713566) - 作者: foruhar - 评分: 9 - 评论数: 1 - 发布时间: 2025-10-27 01:18:19 --- ## Deutsch Spielen:通过游戏学习德语 这个网站提供了一系列互动游戏,帮助用户以有趣的方式学习德语。这些游戏涵盖了数字、时间、名词的性(der, die, das)和动词变位等基础德语知识点。通过选择不同的游戏,学习者可以根据自己的需求和兴趣,有针对性地提高德语水平。网站界面简洁直观,并且针对移动设备进行了优化,方便用户随时随地学习。 网站提供了多种类型的游戏,例如数字与单词的转换、时间表达、猜测名词词性、名词翻译、动词变位等。每个游戏都侧重于不同的技能,帮助学习者全面掌握德语基础。例如,“Guess the Artikel”游戏可以帮助学习者掌握德语名词的性,而“Verb Conjugation”游戏则可以练习德语动词的变位。这些游戏的设计旨在让学习过程更加轻松有趣,从而提高学习效率。 评论区对这个网站提出了各种看法。有人认为,通过游戏学习语言是一个好主意,并建议可以尝试在其他游戏中切换语言来学习。也有人指出,“Guess the Artikel”游戏在单复数问题上可能存在歧义。此外,还有评论认为,网站提供的更像是测试题和测验,而不是真正的游戏。有人质疑通过测试学习语言的效果,认为测试只能验证已有的知识。还有人指出了网站上可能存在的错误,例如“Time Short Form Game”中的拼写错误。最后,有人建议初学者不要一开始就学习五位数的数字转换,因为德语的数字表达方式比较复杂。总的来说,评论既肯定了网站的创意,也提出了改进建议。 - 原文: [Show HN: Learn German with Games](https://www.learngermanwithgames.com/) - Hacker News: [https://news.ycombinator.com/item?id=45745566](https://news.ycombinator.com/item?id=45745566) - 作者: predictand - 评分: 32 - 评论数: 13 - 发布时间: 2025-10-29 19:50:58 --- ## 欧洲制造:EuroLLM多语言大模型 EuroLLM是一个在欧洲创建的大型语言模型,旨在支持欧盟所有24种官方语言。这个开源项目由Unbabel等机构合作开发,利用欧洲的超级计算机资源,目标是推动欧洲的数字主权和AI创新。 EuroLLM目前的主力模型是EuroLLM 9B,它是一个拥有90亿参数的模型,经过超过4万亿个token的多语言数据训练,涵盖35种不同的语言。该模型不仅可以用于微调,还提供了针对指令遵循和聊天功能的微调版本EuroLLM 9B Instruct。EuroLLM的团队致力于推进多语言AI技术,并使其成为创新的催化剂,让更多人能够使用和构建基于这个欧盟本土LLM的应用。该项目证明了欧洲在技术创新方面的合作潜力。该团队由来自Unbabel的André Martins、Aveni.ai的Alexandra Birch等多位专家组成。 评论区里,大家对EuroLLM的必要性和实际效果展开了讨论。有人指出,现在的大型语言模型已经具备处理多种语言的能力,无需专门构建针对特定语言的模型。也有人好奇EuroLLM的具体训练数据来源。此外,还有评论提到,该项目是欧洲利用其超级计算机资源的一个成功案例,将原本用于物理模拟的计算资源进行了再利用。另一方面,也有人对欧洲政策制定者在技术产业扶持方面的能力表示担忧,认为“挑选赢家”的资助模式可能会适得其反。 - 原文: [EuroLLM: LLM made in Europe built to support all 24 official EU languages](https://eurollm.io/) - Hacker News: [https://news.ycombinator.com/item?id=45733707](https://news.ycombinator.com/item?id=45733707) - 作者: NotInOurNames - 评分: 729 - 评论数: 547 - 发布时间: 2025-10-28 22:58:04 --- ## 伯克利乱序机器 (BOOM) 概述 本文档介绍了伯克利乱序机器 (BOOM),一个开源的 RISC-V 处理器实现,并深入探讨了其架构、设计和使用方法。BOOM 的设计灵感来源于 MIPS R10000 和 Alpha 21264 处理器,采用了统一物理寄存器文件设计。 BOOM 实现了 RISC-V 指令集架构,并使用 Chisel 硬件构造语言构建核心生成器。这种生成器方法使得 BOOM 能够代表一系列乱序设计,而不仅仅是单个核心实例。此外,BOOM 还利用 Rocket Chip SoC 生成器作为库,以重用不同的微架构结构,例如 TLB 和 PTW。 文档详细介绍了 BOOM 的各个流水线阶段,包括指令获取、分支预测、解码、重命名、重排序缓冲区 (ROB)、分派、发布单元、寄存器文件、执行流水线和加载/存储单元 (LSU)。此外,还涵盖了内存系统、参数化、开发生态系统、调试、微架构事件跟踪、验证和物理实现等方面。 BOOM 旨在为研究人员和开发者提供一个灵活且可配置的平台,用于探索乱序处理器设计的各种方面。通过 Chisel 硬件构造语言和 Rocket Chip SoC 生成器的使用,BOOM 能够轻松地进行定制和扩展,以满足不同的应用需求。 评论区中,phkahler 指出最新版本可能是 Sonic Boom,并给出了 GitHub 链接。但他同时也提到,该项目在过去一年中的提交相对较少,似乎处于停滞状态。这可能意味着该项目需要更多的社区参与和贡献才能继续发展。尽管如此,BOOM 仍然是一个有价值的资源,可以帮助人们了解乱序处理器设计的复杂性和挑战。 - 原文: [Berkeley Out-of-Order RISC-V Processor (Boom) (2020)](https://docs.boom-core.org/en/latest/sections/intro-overview/boom.html) - Hacker News: [https://news.ycombinator.com/item?id=45745995](https://news.ycombinator.com/item?id=45745995) - 作者: Bogdanp - 评分: 14 - 评论数: 1 - 发布时间: 2025-10-29 20:33:01 --- ## 生产环境中持续 NVIDIA CUDA 性能分析 本文介绍了 Polar Signals 发布的首个开源 NVIDIA CUDA 性能分析器,它具有低开销,适用于生产环境中的常时性能分析,作为 parca-agent v0.43.0 版本的一部分。该方案结合了 CUPTI 性能分析 API、USDT 探针和 eBPF,构成了一个低开销的 GPU 性能分析器。 在生产环境中理解 CUDA 应用程序的性能特征一直是一个挑战。传统的 NVIDIA Nsight 虽然信息丰富,但侵入性强,会带来显著的性能损失。Polar Signals 的目标是在生产环境中进行持续性能分析,因此他们需要找到一种以极低开销获取有价值信息的方法。他们之前的研究已经实现了 GPU 利用率和内存使用情况的跟踪,现在更进一步,通过分析 CUDA kernel 的执行情况来了解 GPU 时间的具体消耗。 传统的性能分析方法面临一个根本挑战:如何在不引入显著开销的情况下,将细粒度的计时信息从程序传递回性能分析器?常见的解决方案包括将数据写入文件(文件系统 I/O 开销)或通过域套接字或网络连接发送数据(序列化和网络开销)。而 Polar Signals 的方案旨在避免这些开销。 该方案的核心是 `parcagpu`,一个拦截 CUDA API 调用的 shim 库。通过 CUDA 的 `CUDA_INJECTION64_PATH` 机制,可以将该库注入到任何 CUDA 应用程序中,而无需修改代码。`parcagpu` 使用 NVIDIA 的 CUPTI 来订阅 `cudaLaunchKernel` 和 `cudaGraphLaunch` 的 CUDA 运行时 API 回调,注册 CUPTI 的 activity API 以接收 kernel 执行记录,并从 activity 流中收集计时数据、设备 ID、流 ID 和 kernel 名称。然后,它没有将这些数据写入文件或套接字,而是通过 USDT 探针将其暴露给 eBPF。 USDT 探针是嵌入在用户空间应用程序中的轻量级跟踪点。`parcagpu` 中定义了两个探针:`parcagpu:cuda_correlation` 在 CUDA kernel 启动时触发,捕获将 kernel 启动与其最终执行相关联的相关 ID,以及标识是常规 kernel 启动还是 graph 启动的回调 ID。`parcagpu:kernel_executed` 在 CUPTI 的 activity API 传递 kernel 执行数据时触发,暴露计时和上下文信息,包括启动和结束时间戳、相关 ID、设备和流标识符、Graph ID 和节点 ID,以及 kernel 名称。 `parca-agent` 性能分析器使用 uprobe 按地址附加模式(而不是按符号)连接到这些 USDT 探针,地址来自 `.note.stapsdt` ELF 部分。为了解决 `parcagpu` 库在 CUDA 应用程序初始化 CUPTI 时动态加载的问题,他们使用另一个 uprobe 监听动态链接器中的 `dlopen`。这使得他们能够在 `libparcagpucupti.so` 上调用 `dlopen` 时立即启动性能分析器。在实践中,他们甚至不必附加到两个 USDT 探针;他们动态检测 kernel 是否支持 multi-uprobe 功能(通常是 6.6 及以上版本的 kernel),然后可以将一个 eBPF 程序附加到两个 USDT 跟踪点,并使用一个探针将数据传递到正确的程序。 为了有效地将关于 N 个 kernel 启动的信息从 USDT 传递到 agent,他们使用了 perf event buffers,这是一种内置于 Linux kernel 中的环形缓冲区机制,专门用于高性能跟踪。 由于文章中没有评论内容,因此无法进行评论观点的分析。 - 原文: [Continuous Nvidia CUDA Profiling in Production](https://www.polarsignals.com/blog/posts/2025/10/22/gpu-profiling) - Hacker News: [https://news.ycombinator.com/item?id=45669377](https://news.ycombinator.com/item?id=45669377) - 作者: brancz - 评分: 67 - 评论数: 8 - 发布时间: 2025-10-22 22:05:54 --- ## GenAI 图像编辑模型大比拼 本文对比了各种最先进的图像编辑模型在特定提示和挑战下的表现,重点关注文本指令驱动的图像修改。文章通过一系列有趣的 prompt,例如给光头男生成浓密头发、调换积木位置、将鲨鱼变成猫爪等,测试了不同模型的图像编辑能力和对指令的理解程度。 文章设定了一些比赛规则,例如不允许通过连续的提示来修正图像,必须一次性完成编辑目标;编辑过程必须纯粹基于文本指令,不允许使用 img2img 或手动遮罩等功能。文章展示了 Seedream 4、Gemini 2.5 Flash、Qwen-Image-Edit、FLUX.1 Kontext、OpenAI gpt-image-1 和 OmniGen2 等模型的表现,并给出了每个 prompt 的成功率。 一些 prompt 的设计考虑了模型的实际应用场景和挑战,例如“冲浪者加入神奈川冲浪里”测试了模型将新元素融入现有作品的能力;“拉直比萨斜塔”测试了模型在局部层面上的空间感知能力。文章还对一些测试结果进行了评论,例如在“缩短长颈鹿脖子”的测试中,大多数模型都未能做出有意义的修改,只有 Seedream 4 做出了可信的尝试。 文章还提到,即使是那些试图最小化图像更改的模型,随着时间的推移,也会不可避免地引入细微的降级,就像 VHS 磁带被反复复制一样。因此,能够一次性进行多次修改的能力非常重要。 评论区中,minimaxir 认为 Gemini 2.5 Flash Image / Nano Banana 被低估了,它比大多数其他模型更强大,并且由于其文本编码器,可以处理更大更细致的提示,从而获得想要的结果。他还开源了一个 Python 包,用于生成示例,并正在撰写一篇包含更多代表性示例的博客文章。Google 还允许在 AI Studio 中免费生成具有宽高比控制的图像。 - 原文: [Generative AI Image Editing Showdown](https://genai-showdown.specr.net/image-editing) - Hacker News: [https://news.ycombinator.com/item?id=45739080](https://news.ycombinator.com/item?id=45739080) - 作者: gaws - 评分: 289 - 评论数: 61 - 发布时间: 2025-10-29 04:58:22 --- ## WebAssembly 上的 Tcl 发行版:Wacl Wacl 是一个为 WebAssembly 设计的 Tcl 发行版,它允许 Web 开发者在浏览器中嵌入 Tcl 解释器,并将 Tcl 与 JavaScript 集成。同时,它也让 Tcl 开发者能够使用他们熟悉的工具和语言来创建客户端 Web 应用程序。 Wacl 基于 Aidan Hobsen 的 Emtcl 项目,并在此基础上进行了扩展,它集成了功能完善的 Tcl 解释器,并增加了事件循环、客户端 Socket、Tcl 库等功能。开发者可以通过 JavaScript 获取 Tcl 解释器,处理定时器事件、文件事件和自定义事件。Wacl 还支持通过 Socket 连接到 WebSocket 服务器,并使用二进制协议传输数据。它还包含 `wacl::dom` 和 `wacl::jscall` 命令,以及 tDOM、json、html 等扩展,方便进行 XML/HTML 解析和 JSON 处理。 该项目使用 Emscripten 编译,WebAssembly 格式的体积更小,速度更快,但可能与旧版本浏览器不兼容。开发者可以通过修改 Makefile 来生成 JavaScript 代码,以兼容不支持 WebAssembly 的浏览器。 Wacl 提供了预编译版本,可以在支持 WebAssembly 的浏览器上运行。开发者也可以下载预编译的二进制文件,并在自己的网页上使用。构建 Wacl 需要 Emscripten SDK 和其他一些工具,目前仅支持 Unix/Linux 环境。 评论区观点: * 一位用户表示,他一直在寻找类似的项目,以便将 Tcl 嵌入到 Go 应用程序中,而无需 CGo。 * 另一位用户指出,该项目上次更新是在 8 年前。 - 原文: [Wacl – A Tcl Distribution for WebAssembly](https://github.com/ecky-l/wacl) - Hacker News: [https://news.ycombinator.com/item?id=45742616](https://news.ycombinator.com/item?id=45742616) - 作者: shakna - 评分: 66 - 评论数: 2 - 发布时间: 2025-10-29 12:25:24 ---

  

🫵 来啊,说点有用的废话!