每日HackerNews RSS

Pigeons & Planes 是一个致力于音乐发现和推广新兴艺术家的平台。他们专注于策划高质量的音乐体验,包括线上内容和线下活动。 简单来说,Pigeons & Planes 不断寻找和分享新音乐,作为你发现下一位喜爱艺术家的资源。他们的核心使命是聆听并为受众提供最佳的音乐精选。他们始终活跃于音乐界,确保源源不断的新声音和艺术家展示。

## 鸽子与飞机重现 & 对旧音乐发现方式的怀旧 音乐博客鸽子与飞机(Pigeons & Planes)重新启动,引发了Hacker News上关于音乐博客“黄金时代”以及音乐发现方式演变的讨论。用户们怀念过去通过RSS订阅、Hype Machine等网站以及个人博客,能够进行自然发现,并让艺术家通过直接推广获得关注的时代。 许多人认为,与此相比,如今算法驱动的流媒体服务显得“缺乏灵魂”。虽然Hype Machine仍然存在,但随着Spotify和SoundCloud等平台的兴起,它的影响力已经减弱。 博主们也承认了影响力发生了变化。他们曾经拥有很大的话语权,但社交媒体和流媒体减少了他们的受众。关于音乐博客未来的角色存在争论,一些人担心它们会过时,另一些人则希望它们能在热爱音乐的人们寻求人工精选内容的需求下迎来复兴,以此对抗日益增长的AI驱动推荐。最终,许多博主仍然因为对音乐的热爱以及与社区的联系而持续创作内容。

这篇帖子详细描述了一项调查,发现几乎每个程序执行的开始都会出现持续的72KB内存分配。作者在试验自定义内存分配器时,使用调试工具记录分配大小,注意到了这个初始的`malloc`调用。通过使用`gdb`进行调试并追踪调用堆栈,他们确定这次分配来自libstdc++的异常处理基础设施。 具体来说,这72KB是为“紧急池”保留的——一个备份内存区域,用于在标准`malloc`失败时分配异常所需的空间。该池在程序启动时延迟初始化,以确保即使在低内存情况下也能处理异常。池的大小由诸如字大小和libstdc++中定义的常量等因素决定。 作者还探讨了这种行为如何影响Valgrind等工具,该工具先前将此内存报告为“仍然可达”(可能误导性地标记为泄漏),以及较新版本如何正确释放紧急池。这项调查强调了即使在核心系统库中也需要进行内存分配,以及底层编程的复杂性。

这个Hacker News讨论围绕一篇博客文章展开,文章详细解释了为什么C++的首次内存分配通常是72KB。这个分配是由于C++标准库预先分配了一个“紧急池”用于异常处理。如果标准`malloc`在异常处理期间失败,这个池将被使用,以确保程序不会崩溃。 讨论强调,这种行为是编译器和库特定的(特别是GCC和libstdc++),并非C++的普遍特征。用户们争论初始分配是否浪费,特别是考虑到旧系统或嵌入式环境的有限RAM。可以通过编译器标志和环境变量来禁用或静态分配这个池。 一些评论者指出替代的内存分配调试方法和覆盖`malloc`的方法,而另一些人强调理解系统级细节以及避免盲目依赖库的重要性。对话涉及C++中异常处理的权衡,以及理解低级实现对于性能和调试的好处。

库伯·梅塔是一位才华横溢的19岁人工智能开发者,来自印度新德里,目前正在印度顶尖大学学习计算机科学、人工智能与数据科学。他是Perplexity AI商业研究员,并且活跃于OpenAI亚太开发者社区。 库伯拥有丰富的黑客马拉松经验——参加过20多场,包括赢得Nothing Essential Lab S1黑客马拉松,并在Unsloth x AMD强化学习黑客马拉松中获得第四名。他因创新项目而备受认可,例如**PolyThink**(多智能体人工智能)、**TREAT**(触发检测),以及特别的**Backdooms**——一个完全功能的DOOM游戏,嵌入在二维码中——该项目曾被《独立报》、《PC Gamer》等媒体报道。 他还正在开发**MEOW**,一种适用于人工智能时代的下一代图像格式,以及众多其他人工智能/机器学习和Web开发项目。库伯精通多种技术,包括Python、JavaScript、TensorFlow和AWS。 他的作品可以在[GitHub](https://github.com/Kuberwastaken)和[Portfolio](https://kuber.studio/)上找到。

## 终端风格作品集受到欢迎 一位开发者kuberwastaken在Hacker News上分享了他的“终端风格”作品集网站(kuber.studio),并指出自上次发布以来有了显著改进。该网站模拟了一个命令行界面进行导航。 用户称赞该网站独特的设计和令人惊讶的良好移动端功能,但有几位用户报告称在移动端浏览超过第五个项目时会崩溃——开发者迅速解决了这个bug。建议包括添加“cd ~”命令返回首页,以及提供PDF或HTML格式的可下载简历。 其他用户分享了类似的基于终端的作品集,激发了更多彩蛋的添加。讨论还涉及动画的真实性(或缺乏)与传统终端输出的比较,以及优化建议,例如移除外部字体依赖。值得注意的是,开发者积极参与反馈,修复bug并承诺进一步更新,甚至对试图使用“rm -rf /”命令的用户做出了有趣的回复。

## Chrome应对量子抗性HTTPS的计划 Chrome正在主动为量子计算机对当前HTTPS证书安全造成的威胁做准备。Chrome没有直接将量子抗性密码学实现到传统的X.509证书中——这将显著增加带宽使用量——而是率先采用**Merkle树证书 (MTC)**。 MTC提供了一种更高效的解决方案,它用紧凑的“证明”取代了冗长的证书链,以验证包含在认证机构 (CA) 签名的公共树中。这在增强安全性的同时,保持了速度和透明度。 Chrome的推广分为三个阶段:**阶段1 (正在进行中)** 是与Cloudflare进行的可行性研究,并以现有的X.509证书作为安全保障。**阶段2 (2027年第一季度)** 邀请已建立的证书透明度 (CT) 日志运营商启动公共MTC。**阶段3 (2027年第三季度)** 将启动专用的“Chrome量子抗性根存储库” (CQRS) 用于MTC,与现有的根程序并行。 除了MTC的开发,Chrome将继续支持当前的CA,并探索用于私有PKI的量子抗性X.509证书。该举措旨在构建一个更快、更安全、更透明的网络基础,使其能够抵御未来的量子计算进步。

## Google 的抗量子 HTTPS 及讨论总结 Google 正在使用 ML-KEM 密码学实现强大、高效的抗量子 HTTPS,引发了 Hacker News 的讨论。焦点正在转向 Merkle 树证书 (MTC),作为后量子密码学 (PQC) 的首选方法。 主要讨论点包括:虽然证书尺寸增加 40 倍(约 160KB)对于宽带连接来说并非灾难性,但对于低带宽用户来说*可能*会比较明显,并且会显著影响高延迟或丢包的连接,尤其是在使用 HTTP/1.1 等旧协议时。 也有人对证书透明度日志的影响表示担忧。 讨论集中在优化初始拥塞窗口大小以及使用 QUIC 等较新协议的优势。 许多评论员认为,现有的网络低效和设计不良的协议才是*真正*的问题,而仅仅增加证书尺寸只会暴露这些潜在问题。 几位用户指出需要更新 Mozilla SSL Config Generator 等工具以支持 PQC 参数。 Let's Encrypt 也在积极探索 MTC 的实现。

## 决策树:总结 决策树通过创建一系列规则来对数据进行分类,将数据分割成越来越纯净的区域。这个过程的核心在于**熵**,它是数据杂质度的度量——熵越低,数据集越同质。算法旨在*最大化信息增益*,即分割后熵的减少量。 **ID3算法**计算每个可能分割的信息增益(基于特征和值),选择产生最大增益的分割。这个过程是递归的,自上而下地构建树,直到叶节点主要包含一个类别(纯净)或满足停止条件(例如最大深度)。 虽然**基尼不纯度**可以作为一种指标进行比较,但熵在不平衡数据集上可能更稳健。决策树易于解释、训练速度快且能很好地处理异常值,但容易出现**过拟合**——创建过于复杂的树,无法很好地泛化到新数据。可以通过诸如剪枝(限制树的深度/大小)等技术来减轻这种不稳定性,或者更有效地通过将多个树组合成**随机森林**来解决。

## 决策树:一种强大且常被低估的工具 最近的 Hacker News 讨论强调了决策树在机器学习中的“非凡力量”。尽管目前关注的重点是神经网络,但决策树因其可解释性、速度和有效性而仍然具有价值,尤其是在与其他技术结合使用时。 一种有效策略是首先构建一个强大的线性分类器,然后将其输出用作决策树的附加特征。这利用了两者的优势:树难以处理线性函数不适用的复杂递归划分数据,而线性模型则难以处理这些结构。 讨论还涉及了与强化学习的相似之处——两者都涉及建立在现有状态信息之上——以及特征工程对树的最佳性能的重要性。虽然神经网络可以自动发现特征,但决策树很大程度上依赖于精心设计的输入。 最终,对话强调了决策树和提升树系统通常出奇地有效,在性能和透明度之间取得了平衡,而更复杂的模型往往缺乏这种平衡。它们代表了一种基础技术,在现代机器学习中仍然相关。

## 室内植物编程:为我而写,由我而造 Hannah Ilea 提出了“室内植物编程”的概念——创建小型、个性化的软件解决方案,旨在解决*你*的具体问题,而无需追求广泛适用性。受 Recurse Center 同行的启发,这种理念拥抱“仅为自己构建”的自由,其中“在我机器上能运行”是成功,而非道歉。 这种方法与专注于生产和大规模使用的传统软件开发形成对比。就像照料室内植物一样,这些项目是为了个人享受和实用性而培育的。即使它们无法茁壮成长,或需要独特的照料也没关系——可以轻松地“堆肥”(删除)或分享给他人进行调整。 Ilea 还将“花束编程”定义为更加短暂的一次性脚本,用于执行特定任务,且不期望维护。她鼓励分享这些个人项目,提供徽章来识别它们,并重新构建围绕分享未完成或高度定制代码的心态。最终,室内植物编程是关于创造的乐趣以及软件存在的价值,仅仅是为了满足个人需求。

## Hacker News 讨论:“盆栽编程” 一篇最近发表在 hannahilea.com 上的文章引发了 Hacker News 关于个人软件项目——那些为解决个人需求而构建的“一次性”程序——的讨论。用户们争论是否一个新的术语“盆栽编程”更能体现这些通常很小、精心维护的工具的精神,而传统上它们被称为“实用工具”。 核心思想是创建软件并非为了广泛重复使用,而是为了个人享受和持续的实用性,就像照料盆栽一样。 也有人提出了“自制应用”和“生存式开发”等替代方案,一些人认为现有术语无法传达相同的个人关怀和持久性。 对话还涉及了更广泛的软件开发状态,一些人哀叹智力追求的衰落,并对人工智能的影响表示担忧——担心它会导致质量较低、快速生产的软件,而不是释放时间用于有意义的创作。 另一些人认为人工智能是一种有用的工具,但警告不要过度依赖它。 最终,许多人表达了对更多“盆栽”风格项目的渴望——小型、精心制作的工具,它们充满热情和关怀。

## 10-202:现代人工智能物流导论 - 课程概要 本课程将于2026年春季在CMU开课,介绍驱动现代人工智能(如ChatGPT)的核心机器学习方法和大型语言模型(LLM)。尽管它们很复杂,但其底层技术却令人惊讶地易于理解——学生甚至将从头开始构建一个基本的AI聊天机器人。 课程涵盖了广泛的主题,从人工智能的历史和监督学习到神经网络、Transformer以及微调、强化学习和AI安全等高级技术。课程的很大一部分涉及使用Python和PyTorch等工具进行实践编程作业,最终训练并运行一个开源LLM。 成绩评估基于作业(20%)、小测验(40%)和期中/期末考试(40%)。课程的精简免费版本将在线提供,内容发布延迟两周。学生允许将AI助手作为学习工具用于作业,但预计独立完成最终提交,并且禁止在考试中使用它们。 **先修课程:** 基本Python编程(15-112/15-122)和微积分入门(21-111/21-120)。

## 卡内基梅隆大学现代人工智能课程与人工智能工具使用 来自卡内基梅隆大学(CMU)的一门新的入门人工智能课程正在Hacker News上引发讨论。该课程 ([modernaicourse.org](modernaicourse.org)) 明确允许学生将ChatGPT等人工智能助手*用于*家庭作业和作业,作为一种学习工具,但强烈鼓励提交最终作业时不使用人工智能辅助。其理由是,虽然人工智能可以帮助理解,但过度依赖会阻碍真正的学习和评估表现。 评论者普遍认同这种方法,将其视为利用人工智能优势与确保学生培养核心技能之间的平衡。一些人强调该课程讲师与OpenAI的关联。讨论还涉及该课程通过允许学生处理更复杂的项目来加速学习的潜力,以及即使*在*人工智能辅助下,调试技能的重要性。 一个反复出现的主题是关于“现代人工智能”定义的争论,一些人认为专注于LLM过于狭隘,忽略了其他重要的人工智能领域。另一些人则指出该课程的实践重点,反映了行业趋势。

这段 JavaScript 代码创建了网页上由特定元素触发的交互式工具提示(气泡)。它解析页面文本内容中的自定义 `[[术语|标题|内容]]` 标记,将其替换为按钮。点击或聚焦这些按钮,将显示包含与 `术语` 关联的 `标题` 和 `内容` 的工具提示。 该代码智能地将工具提示相对于触发元素定位,确保其保持在视口内,并通过调暗触发元素分支外部的区域来避免覆盖内容。它处理鼠标交互(悬停/点击)和键盘导航(聚焦、Esc 键)以打开和关闭工具提示。 该脚本还适应不同的输入方法,为触摸设备提供“粗略”模式,并包含打开和关闭工具提示的动画。最后,它在窗口大小调整或滚动事件时重新定位工具提示,以保持其可见性和位置。

## 使用 `uv` 和 `Dagger` 轻松构建 Python Monorepo Monorepo(单仓库包含多个项目)在谷歌和 Facebook 等大型公司很常见,但管理起来可能具有挑战性。本文详细介绍了一种使用工具 `uv` 和 `Dagger` 构建 Python Monorepo 的简化方法。 传统上,Python Monorepo 的设置很复杂,因为依赖管理和构建速度慢。然而,`uv` 简化了打包和依赖解析,而 `Dagger` 提供了一个强大的构建系统。这种组合能够实现具有端到端缓存的快速、模块化流水线。 核心思想是利用 `uv` 的 workspace 功能和 `Dagger` 以编程方式定义构建过程的能力。通过解析 `uv.lock` 文件,系统可以智能地仅复制必要源代码,避免因无关项目中的更改而触发完整重建。这是通过一个构建 Docker 镜像的 Dagger 模块实现的,利用现有的 Dockerfile 阶段并添加一层用于依赖管理。 这种方法具有维护成本低、本地和 CI 兼容性以及通过缓存实现显著速度提升等优点。虽然需要一些初始设置,但由此产生的流水线高效且可扩展,使 Python Monorepo 更易于管理和性能更高。作者鼓励查阅 `uv` 和 `Dagger` 文档以进行自定义和优化。

一个 Hacker News 的讨论围绕着一篇名为“破解 Python Monorepo”的博文展开。核心讨论围绕着 monorepo 的挑战和优势,特别是对于 Python 项目。 用户指出,Python monorepo 中最大的资源消耗不是打包,而是运行测试——高效的测试缓存至关重要。博文作者确认 Dagger 被用于促进这种缓存,通过正确组装容器并跳过未更改代码的测试。 几位评论者表示,比起 Git 子模块等替代方案,他们更喜欢 monorepo,理由是后者令人沮丧且容易出错。然而,一位用户批评该文章更像是一则 Dagger 广告,而另一位则建议解决静态类型问题可能比采用 monorepo 带来更快的好处。

## 硬木:高性能 Parquet 解析 硬木是一个新的系统,专为高性能 Parquet 文件处理而构建,借鉴了 1BRC 的经验。其主要重点是通过并行化最大化 CPU 利用率,即使在 Parquet 格式的复杂性下也能实现高吞吐量。 硬木采用了多种技术:**页面级并行**(使用多个线程解码数据页面)、**自适应页面预取**(优先处理解码速度较慢的列)和 **跨文件预取**(重叠文件解码)。这些,以及减少分配等优化措施,显著提升了性能。 在 MacBook Pro M3 Max 上,硬木可以在约 1.2 秒内对 ~9.2GB 纽约出租车数据集的三个列求和(列读取器 API),并在约 1.3 秒内解析 900MB 的嵌套 Overture Maps 数据文件。 该项目利用 JDK Flight Recorder 进行瓶颈识别,并包含自动化性能测试,并计划使用 Apache Otava 构建自动化回归检测流水线,以确保持续的性能改进。

## 硬木:一种新的Java Parquet解析器 一个名为**硬木 (Hardwood)** 的新Java库旨在为处理Parquet文件提供一个比广泛使用的 `parquet-java` 更简单、性能更高的替代方案。开发者长期以来一直苦于 `parquet-java` 复杂的依赖结构、笨拙的API和相对较慢的性能。 硬木通过提供**零强制依赖**来解决这些问题,允许用户仅添加他们需要的压缩和日志库。初步基准测试表明,在诸如对大型数据集(纽约出租车数据)中的列求和等任务中,硬木的性能明显优于 `parquet-java`,速度达到~1.2-2.7秒,而 `parquet-java` 则较慢。 目前,硬木在处理扁平、完全解析的数据集方面表现出色,但缺乏谓词下推优化——该功能计划在未来开发中实现。该项目提供了一个性能测试框架,允许用户在自己的机器上将其与 `parquet-java` 和 PyArrow 进行比较。

更多

联系我们 contact @ memedata.com