每日HackerNews RSS

## 从 Azure Functions 到 FreeBSD:一次迁移故事 感恩节早晨的一次中断——“503 服务不可用”错误——促使了从 Azure Functions 迁移网络服务的提前行动。根本原因?即将停用的 Linux Consumption 计划,作者依赖该平台构建了使用 Rust 的应用程序,包括 EndBASIC 的文件共享、站点分析 (EndTRACKER) 和 ZFS 自动解锁服务。 最初被 Azure 的无服务器模型和免费层吸引,作者面临数据库集成(Microsoft SQL Server 存在问题)和托管 PostgreSQL 实例成本上涨的挑战。迫在眉睫的 2028 年截止日期,加上即时中断,促使转向自托管解决方案。 利用现有的、强大的 ThinkStation 运行 FreeBSD 14.x,作者成功迁移了这些服务。这包括将 Rust 二进制文件调整为独立 HTTP 服务器运行,利用 `daemon(8)` 进行进程管理,并使用 `newsyslog(8)` 实现日志轮转。Cloudflare Tunnels 现在处理 TLS 终止和 CORS,简化了安全性并解决了配置障碍。 结果?可预测性提高,由于本地数据库访问,性能显著提高,管理简化,成本降低。虽然失去了诸如高可用性和自动部署之类的功能,但作者认为这些是未来的改进,并庆祝了自托管带来的控制权和效率。

## 从 Azure Functions 到 FreeBSD:总结 这次黑客新闻的讨论围绕着一位开发者将应用从 Azure Functions 迁移到 FreeBSD 自行托管的经历。驱动因素是对 Azure 复杂性、无法解释的中断以及开发者体验问题的沮丧。作者在 SQL Server 连接的 TLS 实现上遇到了问题,并经历了神秘的 503 错误。 许多评论者对服务器less平台提供的控制和可预测性不足表示共鸣。虽然承认像 AWS Lambda 这样的服务很方便,但有几位用户强调了更传统、类 Unix 的服务管理方式的优势。 讨论涉及了 FreeBSD 中进程管理方面的挑战(与 systemd 或 PM2 相比),并推荐了 `daemontools`、`runit` 和 `nitro` 等工具。 许多评论者还分享了对 Azure 可靠性和不透明错误信息的负面体验,以及对供应商锁定和意外更改的担忧。最终,该帖子展示了人们对自托管和容器化作为替代日益复杂的云解决方案的兴趣日益增长。

## VPN 所在地声明与现实:摘要 最近,IPinfo 对 20 家流行的 VPN 提供商进行了分析,发现 **17 家 VPN 的流量出口国家与广告宣传不符**。许多 VPN 声称支持超过 100 个国家,但通常通过位于美国和欧洲的有限数量的数据中心路由流量。 该研究分析了超过 15 万个出口 IP,发现了 **38 个“仅虚拟”国家**——提供商声称但从未实际观察到流量出口点的国家。只有 3 家提供商(Mullvad、IVPN 和 Windscribe)完全匹配了其声称的所在地与 IPinfo 的测量结果。 这种差异源于基础设施成本和监管风险等技术原因,但当提供商缺乏透明度时,会引发信任问题。IPinfo 的“ProbeNet”平台利用实时网络测量,显示与依赖自我报告信息的传统 IP 数据集存在显著差异——**位置数据的平均误差为 3,100 公里**。 该报告强调,不应将声称的国家数量过多视为理所当然,并鼓励用户优先选择那些对虚拟与物理位置进行明确披露的 VPN。最终,该研究倡导基于证据的 IP 数据和 VPN 提供商的透明度。

## 重拾交互式开发:REPPL 愿景 现代编程环境牺牲了早期 REPL(读取-求值-打印循环)的即时反馈和持久上下文,例如 1970 年代 Lisp 和 APL 中的 REPL,优先考虑生产效率而非开发者体验。这导致了解释器、IDE 和构建管道之间碎片化的工作流程。 核心思想是利用当今的技术重建这种失去的交互性。真正的 REPL 优先考虑快速迭代和调试,而不是原始性能,保持状态并提供即时结果。虽然 UNIX shell *类似于* REPL,但它缺乏持久语言状态等关键特性。 作者提出了一种 **REPPL**(读取-求值-打印-**持久化**-循环)——一个环境,其中每个改变状态的操作都会显式保存其结果,理想情况下使用通用兼容的 JSON 格式。这与以牺牲可调试性为代价来优化速度形成对比。快速存储使持久化可行,提供持久性和可共享性。 最终,该愿景超越了特定于语言的 REPL,扩展到操作系统本身,将其重新设想为通用的开发环境。通过在操作系统级别构建 REPPL 引擎,我们可以在所有语言中实现真正交互式、探索性开发,利用操作系统作为基本的“编程语言”。

## Hacker News 讨论:REPL – 过去与现在 一篇最近的文章引发了 Hacker News 关于 1970 年代计算中的 REPL(读取-求值-打印循环)体验是否优于现代开发环境的讨论。许多评论者同意这种观点,认为旧系统(如 Lisp 和 Smalltalk)具有即时性和持久上下文。 虽然现代工具(如 VS Code 及其扩展程序,Calva、CIDER)提供了 REPL 功能,但有人认为它们未能完全重现过去的简单性和集成性。人们对调试方面的限制以及现代工具、依赖项和微服务引入的复杂性表示担忧。 几位用户强调了 Pharo(Smalltalk 后代)和 Clojure 等语言,它们今天提供了强大的 REPL 体验,但即使如此,也被认为可能缺乏旧系统中发现的功能。另一些人则指出 IPython 甚至浏览器的开发者工具是现代的等价物。一个反复出现的主题是对代码*是*数据的系统的渴望,从而实现强大的自动化推理。最终,讨论涉及了现代 IDE 功能与早期 REPL 驱动开发之间简化、认知工作流程之间的权衡。

## 构建系统:摘要 构建系统是定义和执行从输入到输出转换的工具,缓存结果以避免重复工作。这些转换,称为规则,形成依赖关系图——概述了输出之间的依赖关系。一个“可靠”的构建系统保证无论运行完整构建还是增量构建(重用缓存数据),结果都一致。 构建可以是**进程间**的(声明输入/输出的独立进程),也可以是**进程内**的(单个进程内的函数调用,通常推断依赖关系)。系统在定义依赖关系的方式上有所不同:**应用式**构建预先声明所有内容,而**单子式**构建允许在运行时发现动态依赖关系。 关键概念包括**缓存**、**增量构建**(仅重建已更改的内容)和**封闭性**(仅依赖项目依赖项,而非系统范围的依赖项)。高级系统利用**远程缓存**和**追踪**来跟踪依赖关系。 示例从传统的工具如`make`和`gcc`到更现代的系统如`Bazel`、`Shake`,甚至像`Docker`和`GitHub Actions`这样的工具。最终,构建系统管理依赖关系以高效地创建所需输出,具有不同程度的复杂性和功能。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 什么是构建系统,到底? (jyn.dev) 35 分,by todsacerdoti 1 天前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

关于 新闻 版权 联系我们 创作者 广告 开发者 条款 隐私政策和安全 YouTube 工作原理 测试新功能 © 2025 Google LLC

意大利探险家亚历克斯·贝利尼正在准备他迄今为止最大胆的冒险:在北大西洋的一个融化冰山上生活一年。受到不可预测的北极探险故事的启发,贝利尼对人类在不可控情境下的反应着迷,并希望充分体验这种动态。 为了减轻固有的危险——包括冰山翻转和极端天气——贝利尼将居住在一个由Survival Capsule公司定制设计的十人生存舱内,该公司最初专注于海啸防护。这个坚不可摧的铝制结构将配备一年的物资、风能/太阳能发电系统和通讯工具,但贝利尼计划通过移除大部分座位来最大化空间。 这项挑战超越了单纯的生存。贝利尼几乎一整年都将被限制在生存舱内,他将通过严格的锻炼和模拟阳光来对抗孤独感,并保持身体和精神健康。他认为放弃控制并拥抱不可预测性是自我发现的关键,希望这种极端的隔离能让他更深入地了解自己。

这个Hacker News讨论围绕着一篇关于一个男人计划在特制胶囊中在冰山上生存一年的文章。虽然核心想法引发了兴趣,但评论很快演变成怀疑和批评。 许多用户质疑胶囊的实用性和安全性,指出了潜在的问题,如通风、二氧化碳积聚、胶囊承受冰块挤压的能力以及缺乏运输证据。人们担心胶囊在翻转时的稳定性以及可能造成的严重伤害。 一些评论员还批评了发布文章的网站充斥着“博客垃圾信息”且难以导航。另一些人指出《Outside》和《Trail Running》等曾经受人尊敬的杂志质量下降,并将其与域名销售和糟糕的在线体验联系起来。一个反复出现的主题是依靠这种设备进行广泛灾难生存的不切实际性,并将其与救生筏等更简单的解决方案进行对比。最终,这场讨论凸显了对这个雄心勃勃项目的迷恋和强烈怀疑的混合。

(Empty input provided. There is nothing to translate.)

一位名为Codegres的用户在Hacker News上分享了一个代码出售链接,托管在LemonSqueezy上。然而,最初提供的域名(“codebuy.org”)似乎无法访问,缺少DNS记录。 多位评论者指出链接已失效并表达了怀疑。一位用户指出了Codegres可能存在可疑的提交历史。其他人观察到该项目设计精美,但缺乏完全功能化的特性,将其描述为“氛围代码”。尽管存在担忧,一些人认为其展示“简洁美观”。 讨论的核心围绕着所提供源代码的可访问性和合法性。

## Wozz Kubernetes 审计:查找并减少云端浪费 Wozz 是一个脚本,用于识别 Kubernetes 集群中过度配置的资源,帮助您降低云成本。它分析 Pod 配置,找出请求资源(CPU、内存)和实际使用情况之间的差异,并估算潜在的节省,通常集群的节省率在 30-60%。 该脚本通过 `curl -sL wozz.io/audit.sh | bash` 在本地运行,提供按类别(内存、CPU、负载均衡器、卷)划分的浪费情况细分,并突出显示浪费最多的 Pod。它使用 `kubectl top` 获取准确的使用数据(需要 metrics-server),如果不可用,则回退到请求/限制比较。 **主要特点:** * **无需注册/代理:** 完全在本地运行。 * **只读:** 不修改集群。 * **可选仪表盘:** 推送结果以进行历史趋势和告警。 * **开源:** 可检查代码。 * **成本估算:** 基于平均云定价。 Wozz 识别出常见的过度请求内存/CPU 和孤立资源等问题,提供每月每个 Pod 节省 $5-$50 的潜力。它需要 `kubectl` 访问权限,并可选地使用 `jq` 进行详细分析。

迪克·范·戴克年满100岁,是好莱坞中一个非凡的异例——一位活着的传奇人物,似乎战胜了时间。从早年为部队演出,到在《迪克·范·戴克秀》、《玛丽·波ppins》和《奇蒂奇蒂뱅뱅》等标志性角色中表演,范·戴克几代人都被他的魅力所吸引。他在《玛丽·波ppins》中那句著名的“蹩脚”的伦敦腔口音,现在被认为是这部电影持久吸引力的一部分。 范·戴克的职业生涯跨越了几十年,他活过了同事甚至电影公司,并且仍然出人意料地活跃,最近出现在《蒙面歌手》节目中,并支持伯尼·桑德斯的总统竞选活动。他融合了滑稽喜剧和真诚的温暖,经常扮演“全能好男孩”的角色,尽管他过去曾与酗酒作斗争。 范·戴克不仅仅是一位艺人,他还是一个活生生的历史,连接着表演艺术的不同时代。他将长寿归功于良好的基因、友谊和积极的心态,称自己的人生是一场“美妙的放纵”。他仍然是一位备受喜爱的人物,证明了一点魔法和大量的能量确实可以使世界变得更快乐。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 迪克·范·戴克迎来百岁生日 (theguardian.com) 118 分,thunderbong 发表于 1 天前 | 隐藏 | 过去 | 收藏 | 2 条评论 js2 发表于 1 天前 [–] 相关讨论 (196 分,ggm 发表于 11 小时前 | 50 条评论): https://news.ycombinator.com/item?id=46252993 回复 dang 发表于 1 天前 | 父评论 [–] 评论已移至此处。谢谢! 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## LLM 的 SSE:为何不足 尽管服务器发送事件 (SSE) 简单且兼容现有网络基础设施,但它并不适合传递 LLM 的 token。核心问题在于可靠性:LLM 推理成本高昂,而 SSE 容易受到连接中断的影响,导致需要重新生成响应,从而产生高昂的成本。连接中断(例如,由于用户进入隧道或切换网络)意味着需要重新启动整个过程。 虽然可以通过跟踪 token 并允许重新连接来使 SSE 具有恢复能力,但这需要大量的服务器端状态管理(本质上是将每个 token 写入数据库)。WebSockets 也无法解决这个核心问题。 发布/订阅模型提供了一个更好的解决方案,允许客户端重新订阅并在断开连接后接收剩余的 token。但是,这会增加发布/订阅提供商的成本,可能超过 LLM 推理本身的成本。最终,作者认为,考虑到推理成本与传输成本不成比例,构建强大的传输层的成本可能不如接受 SSE 较差的用户体验更令人满意。

## SSE 与 LLM Token 流:关于可恢复性的讨论 一篇最近的文章认为,由于难以恢复中断的连接,服务器发送事件 (SSE) 不太适合流式传输 LLM token。然而,许多评论者不同意,认为问题不在于 SSE 本身,而在于其*通常*的实现方式。 核心问题是在生成过程中断开连接导致流丢失。作者建议使用 Pub/Sub 作为解决方案,但许多人指出 SSE 可以通过序列号和缓存来支持恢复,这已在协议规范中定义。 几位用户强调现有的框架(如 Google 的 ADK)可以自动处理这种“记录”。 一个关键的争论点在于是否缓存 token(考虑到每个 token 的成本,这很昂贵)还是重新生成它们。一些人提出了诸如幂等提示或持久化流(一种用于可恢复流的开源规范)之类的解决方案,以避免重新生成。 另一些人则建议使用简单的数据库缓存。 最终,共识倾向于认为问题是应用层面的问题,而不是 SSE 的根本缺陷,并且需要更好的抽象和构建块来构建强大的代理系统。

更多

联系我们 contact @ memedata.com