每日HackerNews RSS

该网站正在使用安全服务来保护自身免受在线攻击。您刚才的操作触发了安全解决方案。 提交特定词语或短语、SQL命令或格式错误的数据等行为可能会触发此阻止。

十月初,YouTube突然删除了三个著名的巴勒斯坦人权组织——法律中心(Al-Haq)、Al Mezan和巴勒斯坦人权中心(Palestinian Centre for Human Rights)的账户,以及超过700段记录加沙和西岸地区以色列 allegedly 违反国际法的视频。此举源于美国政府对这些组织因其与国际刑事法院(ICC)合作而实施的制裁,该法院正在调查以色列可能的战争罪行。 这些删除行为是在美国政府的一场运动之后发生的,这场运动最初在特朗普政府时期升级,并在拜登政府时期持续,旨在保护以色列免受问责。批评人士认为,YouTube参与了审查巴勒斯坦声音和压制人权侵犯证据,优先考虑遵守制裁而非信息自由。虽然一些视频仍然在其他地方存档,但这些组织担心美国平台上的更广泛审查。 人权倡导者谴责YouTube的决定,强调其可能为科技公司树立一个危险的先例,并扼杀冲突的关键记录。此举被视为进一步推进一项政治议程,旨在保护以色列免受审查,并压制巴勒斯坦受害者。

## PostgreSQL 表迁移与逻辑复制 当完全数据库迁移不可行时,我们使用 PostgreSQL 的原生逻辑复制在实例之间迁移特定表。这个过程比 Google 的 DMS 等工具更复杂,但提供了更大的灵活性。 首先,在源数据库和目标数据库上,都授予了用户帐户复制权限。然后,使用 `pg_dump` 复制表结构,最初*不包含*约束和索引,以加快初始数据传输。逻辑复制分为两个阶段:初始转储,然后是变更数据捕获 (CDC) 以进行实时更新。 初始转储后,添加了索引和外键(主键是单独恢复的,因为它们是复制所必需的)。通过源数据库上的发布和目标数据库上的订阅来启动复制,并使用 `pg_replication_slots` 和 `pg_stat_subscription` 监控滞后情况。 最后,手动同步序列,停止对源数据库的写入,并执行切换。使用 PgBouncer(一个 PostgreSQL 代理,允许在不重启的情况下更新连接详细信息)实现了近乎零停机时间。然后,通过删除发布和订阅来清理复制设置。迁移后的仔细分析和真空处理对于获得最佳性能至关重要。

这个Hacker News讨论围绕着高效地在PostgreSQL实例之间移动表,正如ananthakumaran的博客文章中所述。核心要点是利用逻辑复制,并通过在目标数据库上**在复制*之前*删除索引**来显著提高速度。这可以防止因每次插入行而导致索引更新而引起的性能下降。 用户分享了PostgreSQL升级(pg15到pg18)和数据导入的经验,并指出在数据传输*之后*再创建索引可以获得类似的性能提升——微软Azure SQL也使用了这种技术。同时删除约束可以进一步加速过程,避免在复制期间进行表扫描。 AWS RDS的S3导入功能和外来数据包装器也被简要提及,作为解决类似数据迁移挑战的潜在方案。

我担心他们把副驾驶功能放在Excel里,因为Excel是驱动我们整个经济的野兽。你知道谁驯服了这头野兽吗?是Brenda。Brenda是谁?她是这个愚蠢的国家里每个财务部门的一名中层员工,她是Excel女神,女神从天而降,亲吻了Brenda的额头,Brenda的汗水才让我们得以进行资本主义。 [...] 她会写出一个财务报告的公式,然后把这个报告发给上级,上级可能需要修改报告,通常他会把它发回给Brenda,但他想,哦,我有AI,AI可能比Brenda更聪明,然后AI会把事情搞砸,而且他无法识别,因为他不懂Excel,因为AI会产生幻觉。你知道谁不会产生幻觉吗?是Brenda。— @belligerentbarbies,在TikTok上

## intervaltree_rs:Python 的 Rust 区间树 `intervaltree_rs` 使用 PyO3 将用 Rust 编写的高性能区间树实现带到 Python。该包允许高效地管理和查询区间。 用户可以从元组列表 (left, right, payload) 创建一个 `IntervalTree`,插入新的区间,并在指定的范围内搜索重叠。`search` 方法支持包含或排除边界。还可以使用它们的 (left, right) 键删除区间。 **安装:** 需要 Rust 工具链、Python 3.8+ 和 `maturin`。使用 `maturin develop` 进行原地开发构建,或使用 `maturin build` 构建可分发的 wheel。然后,该包可以在 Python 中作为 `intervaltree_rs` 访问。 核心功能经过 Rust 单元测试的全面测试,确保可靠性和性能。

一位开发者 (@athekunal) 使用 Rust 构建了一个基于区间树的实现,并提供了 Python 绑定(通过 PyO3),作为 Python 原生 `intervaltree` 的更快替代方案。该项目旨在成为一个可以直接替换的方案,未来的计划包括实现 AVL 树和红黑树来进行平衡。 Hacker News 的评论讨论主要集中在平衡方法上,有人建议探索 Rust 的 `BTreeMap` 和 `rangemap` crate 用于范围映射。 同时也出现了关于支持集合运算和序列化,以及是否可以作为独立的 Rust crate 发布的问题。 其他用户分享了相关的项目——一个 TypeScript 实现和 C++ 中的 Boost 区间容器库,并讨论了诸如大数据集中的堆内存使用等性能考量。 该帖子还包含了一个 Y Combinator 申请的公告。

## 黑客宣言:摘要 《黑客宣言》由“导师”于1986年被捕后撰写,为黑客的动机和行为辩护。它将黑客行为描绘成对压抑和智力上令人不满的世界的一种自然反应,而非恶意犯罪。 作者描述了一个常见的起源故事:一个聪明但无聊的学生,对传统教育的局限性感到沮丧。发现计算机提供了一个真正探索和控制的空间,从而与在线志同道合的社区建立联系。 “导师”认为,黑客的驱动力是好奇心和对知识的渴望,而非破坏。他们挑战一个将利润置于可访问性之上的系统,谴责他们的探索为犯罪,却忽视了更大的社会罪行。核心信息是一种共同的身份认同——“我们都一样”——由智力和对传统规范的拒绝所团结。该宣言以一种不屈的断言结尾:压制一个黑客并不能阻止这场运动,因为其根本动机是广泛存在的。

一架UPS货运飞机,航班2976,周二从路易斯维尔国际机场起飞后不久坠毁,已确认至少七人死亡,预计还会增加。四人死于地面,至少11人受伤。该飞机原定飞往檀香山,坠毁地点位于机场南三英里处。 坠机引发大火,最初影响范围广泛,并发布了就地避难令,后来缩小到一英里半径内。超过100名消防员正在扑灭这场由飞机约38,000加仑燃油助长的火灾。UPS已确认机上有三名机组人员,目前他们的状况尚不清楚。 这起事件严重影响了UPS Worldport的运营,该枢纽暂停了包裹分拣。路易斯维尔机场周二晚上关闭,预计周三早上重新开放。国家运输安全委员会将领导调查,派遣由28名调查员组成的团队。当地学校周三也关闭。当局敦促居民报告任何碎片并避开该区域。

## SPy:一种用于性能的静态类型 Python 变体 SPy 是一种新的解释器和编译器,用于静态类型化的 Python 变体,旨在实现显著的性能提升——可能比 CPython 快 10 倍到 100 倍——同时保持 Pythonic 的感觉。它*不是*一个完整的 Python 编译器;某些特性将按设计不受支持,而是专注于针对速度优化的子集。SPy 程序将使用 `.spy` 文件扩展名与标准 Python 文件区分开。 该项目解决了 Python 动态特性中固有的阻碍优化的限制,承认现有的解决方案(如 JIT 编译器(PyPy 等))存在权衡。SPy 旨在消除影响性能的动态特性,同时引入新的特性以保持 Python 的表达力。 关键概念包括 **冻结世界**(导入时间后不可变)和 **红移**(静态已知表达式的即时求值)。SPy 还具有强大的静态类型系统,在运行时强制执行,并利用 `@blue` 函数进行编译时元编程。 目前,SPy 仍在开发中,尚不适合大型项目,但展示了令人鼓舞的加速效果(例如,光线追踪示例速度快 200 倍)。该项目欢迎社区参与,并在 GitHub 上提供,并设有 Discord 服务器供讨论。未来的帖子将详细介绍类型系统、求值模型和实现细节。

## SPy:一种静态类型 Python 变体 - 摘要 SPy 是一种新语言,旨在结合 Python 的易用性和静态类型带来的性能优势。与仅仅编译 Python 不同,SPy 有意省略某些动态特性,同时引入新的特性以保持 Pythonic 的开发体验。 核心思想围绕着“红移”——一个对静态已知代码进行预先求值的过程,类似于常量传播。这使得在标准 Python 中无法实现的优化成为可能。作者认为,语言子集常常因为不断提醒缺失原始语言的功能而苦恼,但 SPy 旨在感觉像一种具有自身连贯哲学的全新语言。 讨论强调了在庞大的现有生态系统下,创建成功的 Python 替代品的挑战。一些人建议专注于特定领域(如数值计算),或采用更独特的身份,而不是努力实现完全兼容性。另一些人则指出 Nim 和 Cython 等现有项目可能是更实用的解决方案。该项目正在积极开发中,提供编译器,并持续进行工作以支持 Pythonic 特性和库的互操作性。

## 模型采用呈现碎片化:人工智能专业化早期迹象 Augment Code 对数百万实时编码交互的分析显示,人们正在从单纯追求最新的 AI 模型转向策略性地将模型*匹配*到特定任务。虽然 Sonnet 4.5 最初占据主导地位,但其份额在 2025 年 10 月初下降至 52%,而 Sonnet 4.0 上升至 37%,GPT-5 保持在 10-12% 左右的稳定水平。这并非典型的版本升级——开发者正在积极地在不同版本之间进行选择。 关键行为差异正在显现。Sonnet 4.5 优先考虑更深入的推理和更少的工具调用,生成比 Sonnet 4.0 多 37% 的输出,但延迟略有增加。Sonnet 4.0 倾向于频繁、快速的操作,而 GPT-5 平衡了推理和自然语言。 这会影响系统负载;Sonnet 4.5 由于其广泛的上下文使用,具有更高的缓存读取量,从而将重点转移到管理和重用信息上。因此,模型正在找到利基市场:Sonnet 4.5 擅长重构等复杂任务,Sonnet 4.0 擅长自动化,GPT-5 擅长代码解释和文档编写。 这一趋势表明,人们正在转向“模型合金”——针对特定工作流程定制的集成体——这反映了数据库技术的多样化。未来不是关于单一“最佳”模型,而是为每个工作选择正确的*认知风格*。

## 微软Z-80软卡:将CP/M带到Apple II 微软Z-80软卡是Apple II的一款开创性扩展卡,值得注意的是,它是微软的第一款硬件产品,也是1980年的一项重要收入来源。它允许Apple II用户运行为CP/M操作系统设计的软件,该操作系统运行在8080处理器上——与Apple II的原生6502处理器不同。 该软卡通过包含自己的Z80处理器来实现这一功能,该处理器与8080兼容。然而,仅仅添加一个处理器是不够的。该卡巧妙地通过欺骗6502进入暂停状态(模拟DMA)来管理与6502的共存,同时Z80运行,并定期“唤醒”6502以防止寄存器退化。 一个重要的挑战是内存映射。两种处理器对初始内存地址都有冲突的使用,并且CP/M期望特定的加载位置,这与Apple II系统功能冲突。软卡通过地址转换电路解决了这个问题,重新映射Z80的内存视图以避免冲突并提供连续的RAM访问。这种复杂的交互使Apple II用户能够体验CP/M软件的世界。

## 微软SoftCard for Apple II:一段技术历史快照 这次Hacker News讨论的中心是微软为Apple II设计的SoftCard,这是一段早期计算历史中引人入胜的一部分。该卡允许Apple II运行CP/M软件,利用Z80处理器与原生的6502处理器协同工作。用户回忆起使用它来访问像Borland的‘C’编译器这样的工具,这些工具在Apple II上无法直接使用。 一个关键的收获是Apple II令人瞩目的开放架构,由史蒂夫·沃兹尼亚克设计,允许扩展卡无缝集成——甚至可以在需要时禁用主CPU。这与后来需要复杂手动配置的系统形成了鲜明对比。讨论强调了个人计算带来的权力转移,回忆起一个Apple II在某些任务上可以超越大型计算机的时代。 评论员还提到了相关的技术,如Commodore的磁盘驱动器6502处理器以及托管/混合机器的演变,展示了丰富的硬件创新历史和复古计算的持久吸引力。雷蒙德·陈的博客“The Old New Thing”因其深刻的工程视角而受到赞扬。

更多

联系我们 contact @ memedata.com