每日HackerNews RSS

为大型功能特性维护干净的提交历史(即每个提交都是逻辑清晰、便于审阅的步骤)往往令人精疲力竭。像 `jj absorb` 或 `jj squash -i` 这样的传统工具容易出错,或者在边界复杂时导致合并冲突。 作者提出了一种替代工作流:“衣物分类法”(Laundry Sorting)。在开发过程中,与其费力维护完美的提交,不如先让初始提交变成一堆混乱的混合更改。待功能完成后,你先创建一个由空提交组成的链条,按逻辑顺序排列,代表你理想中的历史记录。接着,将所有“混乱”的提交合并为一个“全量”提交,再以交互方式将特定的代码块迁移到对应的逻辑提交中。 这种方法避免了“拆分与合并”的循环,简化了整理过程,并通过一次性分发更改避免了冲突地狱。虽然这有时会产生无法编译的中间提交(牺牲了完美的 `git bisect` 历史),但它显著减轻了版本控制带来的认知负担,将审阅者的可读性和开发者的顺畅度置于严格的增量提交规范之上。

这篇 Hacker News 的讨论探讨了关于 **Jujutsu (jj)** 的争论。这是一个构建在 Git 后端之上的版本控制系统,旨在减少人们在使用 Git 时常感到的“严苛疲劳”。 **支持者**认为,Jujutsu 将提交视为可变对象,并支持更简便的历史记录操作(如持续的变基和冲突管理),消除了 `git rebase` 中常见的模式错误,从而显著降低了使用门槛。他们强调了 `jj undo` 等功能,以及在无需命名的情况下处理多个“匿名”分支的能力。对于用户而言,它提供了一种更符合人体工程学的体验,本质上“消除了”传统 Git 的痛苦。 **怀疑论者**则强调,Git 本身已经是功能强大的行业标准工具。许多人认为,对于那些已经精通 Git 的用户来说,Jujutsu 的优势微乎其微;他们指出,复杂的工作流程可以通过别名、AI 代理或 Magit 等工具来处理。批评者还对 Jujutsu 的分支管理表达了不满,特别是偶尔需要手动推进书签(bookmarks)带来的额外工作量;并指出它面临“Blub 悖论”:如果不投入专门的时间去学习,就很难理解它的优势,而许多资深开发人员并不愿意进行这种投入。

拒绝访问。您没有权限访问此服务器上的“http://www.cbp.gov/document/directives/cbp-directive-no-3340-049b-border-search-electronic-devices”。引用编号 #18.ad62c17.1779656521.a899f674 https://errors.edgesuite.net/18.ad62c17.1779656521.a899f674

近期的一场 Hacker News 讨论聚焦于美国海关及边境保卫局(CBP)第 3340-049B 号指令引发的担忧,该指令规定了对美国边境电子设备的搜查程序。指令要求旅客必须以可供检查的状态出示设备,这实际上允许执法人员要求旅客提供密码或访问加密数据。 评论者表达了对隐私问题的严重关切,指出尽管非公民可能因不配合而面临拒绝入境,但美国公民通常不会被拒绝入境,却可能面临设备被没收或扣押的风险。许多用户认为,该指令宽泛的措辞营造了一种环境,使得以“国家安全”为由的例外情况几乎能够不受限制地行使自由裁量权。 讨论还涉及以下内容: * **隐私策略:** 一些用户建议使用“一次性”设备、将手机恢复出厂设置,或利用云端数据卸载功能,以避免泄露敏感信息。 * **法律辩论:** 用户讨论了“边境搜查豁免权”的范畴,指出尽管该原则有其历史根源,但现代设备所包含的海量私人数据是宪法制定者当初未曾预料到的。 * **事态升级:** 多位参与者对政府权力越界表示怀疑,呼吁进行立法改革,以在数字时代更好地定义和限制 CBP 的权限。

对于后端团队而言,从 Go 迁移到 Rust 不仅仅是为了提升运行速度,更是为了获得正确性保障和架构控制力。虽然 Go 是一门高效且“内置电池”的语言,但它依赖于惯例和运行时检查来管理内存、错误和并发——这往往使团队容易受到生产环境中空指针异常和数据竞争的影响。 Rust 通过将安全检查前置到编译器中解决了这些问题。Option 和 Result 类型、内存所有权以及基于特质(Trait)的泛型等特性,从根本上消除了许多类别的运行时错误。尽管这意味着更陡峭的学习曲线和更严苛的借用检查器,但其回报是更可预测的延迟、更低的内存占用,以及大幅减少的“救火”式事故。 作者建议避免“大爆炸式”的重写。相反,应采取战术性策略:将核心热点路径、后台任务或关键基础设施迁移至 Rust,同时在简单的胶水层服务中继续使用 Go。这一转型需要将“运行时检查”的思维模式转变为将编译器视为合作伙伴。归根结底,混合多语言的后端通常是最务实的策略,利用 Rust 来稳固那些可靠性和性能投资回报率最高的核心服务。

关于从 Go 迁移到 Rust 的争论(Hacker News 上的一大热点)主要集中在语言哲学、生态成熟度以及开发者工作流之间的权衡。 **支持 Go 的观点:** * **Web 后端统治力:** Go 的标准库成熟、经受过大量测试且功能全面,使其成为 Web 服务的理想选择。 * **开发效率:** Go 以简洁、编译速度快和易于维护著称,这对项目的长期生存能力至关重要。 * **运行时:** 其托管的运行时能有效处理垃圾回收和并发(Goroutines),许多工程师认为这对大多数应用层任务已绰绰有余。 **支持 Rust 的观点:** * **安全与性能:** Rust 的借用检查器能在编译时消除整类漏洞(如数据竞争),在无需垃圾回收的情况下提供卓越的内存安全性。 * **表达力:** Rust 提供了更严谨的类型系统和强大的抽象能力,部分开发者认为这使得复杂逻辑更易于推导。 * **智能编码:** 一些支持者认为 AI 编程代理更偏好 Rust,因为严格的编译器充当了护栏,能捕捉到 AI 生成代码中在 Go 里可能被遗漏的错误。 **共识:** 大多数参与者认为,决策取决于项目是需要非托管运行时的性能,还是更简单、迭代更快的开发工作流。许多人认为,与静态语言和动态语言之间的选择相比,“Rust 与 Go 之争”只是一个次要问题。

本研究利用长期进行的“青少年健康与成人纵向调查”(Add Health)数据,探讨了美国自由派与保守派之间日益扩大的健康差异。2008年时,政治意识形态与健康指标之间尚无显著关联,但到了2016至2018年,保守派受访者的健康状况明显较差,且合并症发病率更高。 这种不断扩大的差距仅能部分由社会经济地位、教育程度和地理位置等可观测因素来解释。到了2020至2022年,这一趋势已延伸至死亡率领域;即便在控制了个人和县级人口统计学变量后,保守派因新冠肺炎及其他内科疾病导致的死亡率依然更高。 为了探究深层原因,作者对医疗参与度进行了后续调查。结果显示,右翼倾向人士对初级保健医生的信任度、就诊率以及遵循医嘱的可能性均显著较低。即便在患有慢性疾病的群体中,这一现象依然存在,这表明政治信仰正日益影响人们的健康相关行为及对医疗机构的信任。研究结论认为,健康领域的意识形态鸿沟,部分源于美国人在与医疗系统互动方式上日益加剧的党派分歧。

为了解决 Google Cloud Run 中 Server-Sent Event (SSE) 数据流丢失客户端断开信号的问题,作者将服务迁移到了 HTTP/2。由于 Cloud Run 在边缘层终止了 TLS,因此后端需要使用“基于先验知识的 HTTP/2”(h2c)。 此前,在 Go 中实现 h2c 需要外部的 `golang.org/x/net/http2/h2c` 包以及繁琐的包装配置。但随着 Go 1.24 的发布,这一过程得到了简化。开发者现在只需在标准的 `http.Server` 配置中直接设置 `srv.Protocols.SetUnencryptedHTTP2(true)`,即可原生启用 h2c。 更新 Go 代码后,必须配置 Cloud Run 服务以支持 h2c 协议,这可以通过 Terraform 进行管理。使用 `curl --http2-prior-knowledge` 可以直接测试该实现。此次迁移确保了 HTTP/2 的持久连接特性能够将断开事件正确地传回服务器,从而提高了长连接 SSE 数据流的可靠性。

抱歉。

403 禁止访问 nginx

这项发表在《人文与社会科学通讯》(*Humanities and Social Sciences Communications*)上的研究,探讨了15家澳大利亚机构实施“100:80:100”四天工作制模式(即:100%薪资、80%工作时长、100%生产力)的情况。 该报告采用了对首席执行官及高层领导的访谈定性数据,这些领导者在评估试点时使用了各种内部绩效指标,如收入、利润、冲刺目标以及员工满意度。尽管研究结果显示相当一部分机构的生产力有所提高或保持稳定,但 Hacker News 上的讨论却引发了关于其研究方法的激烈争议。 批评者认为,这项研究属于定性“意见调查”而非严谨的科学数据,将其斥为“伪科学”,并质疑其样本量以及对自我报告、非标准化指标的依赖。支持者则坚持认为该研究提供了宝贵的现实洞察,并指出跨行业进行系统性的生产力衡量本身就存在困难。 这场广泛的讨论反映了员工与管理层之间的分歧:员工视缩短工时为劳动权益的必要演进,而管理层则担忧其对运营成本、竞争力和在高压行业中缩短工时可行性的影响。

请启用 JavaScript 和 Cookie 以继续。

索尔维·巴勒(Solvej Balle)的《关于体积的计算》(*On the Calculation of Volume*)是一部宏大且仍在进行中的七部曲,故事围绕着塔拉·塞尔特(Tara Selter)展开——这是一位被困在11月18日这一天的书商。尽管这个设定并不陌生,但巴勒的呈现方式极具独创性,她将一个潜在的科幻题材转化为对人类存在意义的极简主义哲学沉思。 随着系列前五卷的推进,叙事从塔拉为了维持与丈夫的婚姻而进行的西西弗斯式的挣扎(丈夫对时间循环一无所知),扩展到对“临界社会”日益复杂的探索,因为她发现了其他“循环者”。这部作品的散文以精准、自然的清晰感著称,细致地记录了日常生活、语言和社会结构的质感。通过剥离过去与未来,小说审视了“日常本身”,将单调的重复转变为对身份、联系以及当下意义的深刻追问。最终,巴勒的作品表明,当历史被移除,平庸反而成为深刻哲学启示的源泉。这是一个非凡且宁静优美的文学项目,它重构了我们与时间的关系,以及对平凡之美的认知。

此代码通过模拟位置误差对数据表面的影响,对空间不确定性进行对比可视化。 针对不同程度的位置噪声 ($\sigma_s$),该脚本执行以下操作: 1. **计算高斯过程 (GP) 后验均值:** 使用预先计算的贝叶斯推断模型 (`location_error_idatas`),在已知噪声输入坐标的情况下估计潜在的空间表面 $f(s)$。 2. **生成朴素核密度估计 (KDE) 对照:** 使用标准的核密度估计计算基准表面,并根据高斯过程推导出的长度尺度 ($\ell$) 进行平滑处理。 3. **可视化不确定性:** 生成多面板图形,展示: * **扰动坐标:** 展示真实位置与带误差半径的噪声观测值的散点图。 * **后验密度:** 潜在真实位置 (`X_true`) 与高斯过程后验均值的 KDE 图。 * **空间表面:** 并排的热力图,用于比较不同噪声水平下高斯过程推断的表面与朴素平滑方法。 最终输出是一个高分辨率的多面板网格图,旨在展示与朴素插值方法相比,将位置不确定性纳入高斯过程模型能提供更稳健的空间现象估计。

抱歉。

许多组织正陷入一个陷阱:让人工智能体(如 Claude 或 ChatGPT)主导其系统架构。由于这些模型旨在提供帮助且表现得乐于配合,它们往往会给出“听起来言之有理”但缺乏必要背景、忽略组织约束,且无法对不必要的复杂性提出异议的设计。 这会造成一种危险的“积木塔”效应:这些通用的最佳实践在纸面上虽然技术上可行,却并不适合团队或生产环境的具体现实。更糟糕的是,它绕过了至关重要的、充满碰撞的人类辩论过程,实际上将经验丰富的工程师降级为单纯的“工单执行者”。 问题的根本在于责任归属:当这些由 AI 设计的系统不可避免地出现故障时,AI 无需承担任何责任。而那些并非自主选择该架构的工程师,却必须在凌晨三点的故障中进行排查。 为了解决这个问题,企业必须重新夺回架构师的角色。AI 应作为实现和提速的工具,而非决策者。架构需要人类的判断力、说“不”的能力以及对权衡取舍的深刻理解。如果你的团队不是系统的设计者,那么他们也不应该成为系统的构建者。

更多

联系我们 contact @ memedata.com