每日HackerNews RSS

## Eclipse Collections 与原始类型:总结 Eclipse Collections 故意缺乏某些原始类型的集合类型(如 `BiMap` 或原始类型的 `SortedSet`),这是出于设计选择和关注解决*实际*需求的结果。 值得注意的是,它避免了 `BooleanMap` 类型,尽管 Java 在 `partitioningBy()` 等方法中使用 `Map<Boolean, V>`,但仍认为它们是一种设计异味。 相反,Eclipse Collections 提倡使用 `Pair` 类型(包括原始类型/对象组合,如 `IntObjectPair`)作为 `BooleanMap` 的更安全替代方案。 该库在 Java lambda 出现*之前*(自 2012 年以来)就支持原始类型集合,并具有丰富的 API。 然而,Java 缺乏针对原始类型的泛型——这一特性可能随着 Project Valhalla 的到来而实现——阻碍了对原始类型的完全 lambda 支持。 为了不等待,Eclipse Collections 实现了诸如 `Procedure` 之类的函数式接口来处理原始类型。 Eclipse Collections 提供广泛且无与伦比的原始类型集合支持,包括可变性/不可变性选项和 lambda 集成,在十多年前就解决了这些挑战。 作者鼓励开发者*现在*就利用可用的工具,而不是等待未来的语言特性。 博客、代码练习和书籍“Eclipse Collections Categorically”等资源可供进一步学习。

## 美国在加勒比海军事集结,暗示可能对委内瑞拉采取行动 路透社调查显示,美国在加勒比海地区,特别是波多黎各和美属维尔京群岛附近,进行了大规模军事集结,暗示可能正在为对委内瑞拉采取行动做准备。 这次活动是自1994年以来,与灾难救援无关的最大规模军事部署,包括重新激活前罗斯福路海军基地——正在进行跑道和设施升级——以及加强民用机场。 自8月以来,美国已向该地区部署了至少13艘军舰、五艘支援船只、一艘核潜艇、战斗机和间谍飞机。 关键船只包括驱逐舰、两栖攻击舰和被认为支援特种部队的“海洋贸易者”号(MV Ocean Trader)。 观察到增加了货运飞机(C-17)和间谍飞机(P-8“海神”)的飞行,以及委内瑞拉海岸附近的超音速轰炸机飞行。 虽然白宫以打击毒品为由,但专家认为此次集结旨在向委内瑞拉马杜罗政权施压。 这些升级和部署使美国有可能在委内瑞拉境内开展行动,特朗普总统也暗示了这种可能性。 五角大楼对此未作评论。

## HyperRogue:概要 HyperRogue 是一款独特的类roguelike冒险游戏,背景设定在一个基于**双曲几何**的奇异世界——在这里,空间的规则被令人愉悦地打破。作为一名孤独的冒险者,你将探索超过70个动态生成的世界,每个世界都充满独特的宝藏、怪物和地形。 核心目标是找到传奇的Yendor之球,但你也可以专注于收集宝藏和掌握每个土地。游戏玩法灵感来自类roguelike游戏、埃舍尔的艺术和益智游戏,具有策略性移动和具有挑战性的战斗。 HyperRogue 的独特之处在于其非欧几里得世界。 预计会看到发散的平行线、角度小于180度的三角形,以及熟悉的路径意外扭曲带来的迷失感。 无需几何知识——游戏通过探索来*教授*它! 除了主线任务外,HyperRogue 还提供多种模式,包括射击游戏选项以及几何变化(欧几里得、球形等),以及难度设置和挑战,供经验丰富的玩家体验。 它是一款引人入胜的游戏,一种教育工具,甚至是一个数学艺术平台。

## 超级流氓与非欧几里得Roguelike:总结 最近的Hacker News讨论围绕着《超级流氓》(*HyperRogue*),这是一款使用双曲几何的Roguelike游戏。用户强调了其独特且具有挑战性的游戏玩法,在这种玩法中,路径规划对计算机来说是直观的,但对人类来说却很困难,因为地图是非欧几里得的。 对话扩展到更广泛的非欧几里得Roguelike讨论,其中《Smart Kobold》因其创新的7DRL实现而受到赞扬。关于“非欧几里得”的定义出现争论,一些人澄清了拓扑和几何的区别——《超级流氓》改变了拓扑结构,同时保持了欧几里得几何。另一些人指出,传送门从根本上破坏了欧几里得几何的公设。 推荐了几款其他的Roguelike游戏,包括《Nethack》、《Revengate》、《Greedy Cave》和《Brogue》。虽然许多人喜欢《超级流氓》,但有些人认为它更像是一款益智游戏,而不是传统的Roguelike游戏,因为它世界之间的联系较少。应用商店的可用性也被讨论,并提到了itch.io和F-Droid等替代方案。

黑客新闻 新的 | 过去的 | 评论 | 提问 | 展示 | 工作 | 提交 登录 [已标记] oldnetguy 1天前 | 隐藏 | 过去的 | 收藏 h4ch1 1天前 | 下一个 [–] 我也希望对苏奇尔·巴拉吉的死进行适当调查。这怎么会成为新闻? ndsipa_pomu 1天前 | 上一个 [–] 我错过了什么吗?他为什么不直接起诉特斯拉要求退款——这难道不是一个明显的违约案例,钱被拿走却没有提供产品/服务吗? 考虑申请YC冬季2026批次!申请截止日期为11月10日 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## URL 的被忽视的力量 最近一次从单个 URL 重建 PrismJS 配置的经历,凸显了 URL 作为状态管理工具的常常被低估的力量。与其仅仅依赖复杂的前端状态解决方案,URL 可以优雅地存储和共享应用程序状态——这是自网络诞生以来就内置的功能。 URL 不仅仅是地址;它们是接口,提供可共享性、可书签性和深度链接能力。URL 的不同部分——路径段、查询参数和锚点——可以编码不同类型状态,从分层导航到过滤器和特定内容部分。像文本片段这样的现代功能进一步增强了这种能力。 有效的 URL 设计涉及周到地决定*要*保存什么状态,确保清晰度和可预测性。好的候选者包括搜索查询、过滤器和 UI 偏好设置,而敏感数据或临时 UI 状态应避免。最佳实践包括优雅地处理默认值、节流更新,并使用 `pushState` 和 `replaceState` 尊重浏览器历史记录。 通过将 URL 视为契约,开发者可以创建具有弹性、可缓存性和用户友好性的应用程序。最终,记住 URL 可以*是*状态,而不仅仅是*指向*状态,可以释放 Web 开发中强大且常常被忽视的方面。

受一个关于英国道路交叉口视频的启发,泰丝和她的同伴开始了一个临时的万圣节服装项目:成为贝利沙信标——那些标志性的黄色顶端、黑白条纹杆,用于标记人行横道。这个想法源于泰丝喜欢用正确的名称来识别横道。 随之而来的是十个小时的忙碌,包括电路搭建、用铜片即兴制作印刷电路板,以及大量的焊接。她们的目标是制作闪烁的黄色(安全)和红色(可怕)LED灯,由AA电池供电。她们面临着元件故障和缺乏合适材料的挑战,最终使用了快干胶和电工胶带。 尽管结果粗糙简陋,她们还是完成了头饰和杆状服装。起初对不完美的完成效果感到失望,但这个独特的概念在万圣节活动中大受欢迎,使她们很容易被认出,并赢得了朋友们的欢笑。虽然她们质疑斑马线是否*真的*符合万圣节主题,但她们欣然接受了对英国道路安全设计的古怪致敬。

使现有的API变慢可以很容易地通过组合mock的Base APIs和delay选项来实现。$ mock serve -p 8000 --base example.com --delay 2000 然而,你可能只想让特定的端点变慢,而不是整个API。这可以使用中间件来实现:$ mock serve -p 8000 --base example.com --middleware ' if [ "${MOCK_REQUEST_ENDPOINT}" = "some/endpoint" ] then sleep 2 # 等待两秒 fi ' 通过最后一个例子,我们的API在localhost:8000会充当example.com的代理。所有请求都会立即得到响应,除了some/endpoint,它将有2秒的延迟。

## 从提示工程到上下文工程:一种新的大型语言模型方法 随着大型语言模型(LLM)超越聊天机器人,成为复杂系统的核心组件,仅仅“提示工程”——精炼措辞——已不再足够。一种更全面的方法,**上下文工程**,正在兴起,它以有意的结构和针对性关注着馈送给LLM的*每一个*token。 LLM基于其训练数据预测序列中的下一个token,受限于固定的“上下文窗口”。早期方法侧重于文本补全,然后发展到“聊天框架”——模拟对话——允许通过“系统消息”进行指令。这促成了**上下文学习**等技术,其中LLM从上下文窗口*内*的示例中学习,整合诸如文档(通过RAG)、工具和记忆等数据。 然而,更大的上下文窗口会引入复杂性和“幻觉”等风险。上下文工程将LLM交互视为简报分析师——提供*所有*相关信息,定义任务,并利用可用工具。这种转变利用了成熟的**软件工程设计模式**(如RAG、工具调用和思维链)来实现模块化和可靠性。 未来的系统可能会采用多个专门的“代理”,通过精心设计的token序列——本质上是API契约——进行交互,以解决复杂的任务。最终,上下文工程旨在为LLM的使用带来严谨性和控制力,将它们从不可预测的预言家转变为可靠的任务解决者。

## 黑客新闻讨论摘要:“上下文工程”与LLM“工程” 一场黑客新闻讨论围绕一篇关于大型语言模型(LLM)“上下文工程”的博客文章展开。核心争论在于,鉴于这些模型固有的不可预测性,将软件工程原则应用于LLM交互是否合适。 许多评论者认为,构建有效的提示和上下文更像是一种艺术或手艺,而不是真正的工程,因为缺乏坚实的理论理解和一致的行为。人们担心“工程”一词被误用,用来形容本质上是反复试验的过程。然而,也有人反驳说,围绕LLM构建*系统*——例如RAG(检索增强生成)——*确实*需要传统的软件工程技能(数据层、检索逻辑等)。 讨论还涉及了由于非确定性和持续模型更新,导致LLM难以重现的问题,这使得可靠的评估变得困难。一些人认为该领域仍处于实验阶段,类似于早期的蒸汽机发展,而另一些人则强调需要严格的测量和预测——真正的工程学标志。最终,这场对话突出了与LLM合作的不断发展以及对适当术语和方法论的持续争论。

## Sealos平台:解决关键容器镜像膨胀问题 Sealos团队面临一个关键的生产问题:由于容器镜像意外地变得过大,导致开发节点上的磁盘空间严重耗尽。最初尝试通过增加存储来解决问题,但效果不佳,这揭示了一个更深层次的问题——镜像膨胀,单个镜像已膨胀到272层,达到800GB。 调查发现根本原因是一个持续的暴力破解攻击,将过多的SSH失败尝试记录到`/var/log/btmp`。由于容器运行时的Copy-on-Write (CoW)机制,每次失败尝试都会触发不断增长的11GB日志文件的完整复制到新的镜像层中,每次提交都会导致镜像大小呈指数级增长。这进一步加剧了缺乏镜像层限制和适当日志轮转的问题。 为了解决这个问题,Sealos开发了一个自定义工具`image-manip`,用于精确删除有问题的文件,并将272层压缩成一个优化的镜像。这使镜像大小减少到仅2.05GB——390:1的压缩率。该修复消除了生产警报,显著降低了节点I/O,并降低了估计每月450美元的存储成本。 团队认识到理解容器镜像内部结构的重要性,并实施了预防措施,包括自动监控镜像大小和层数,以及配置安全的基镜像,禁用密码身份验证和日志轮转。

## Sealos 将容器镜像大小从 800GB 减少到 2GB Sealos,一个提供云开发环境的平台,面临一个关键问题:由于暴力攻击导致 11GB 日志记录到 `/var/log/btmp`,并且每次登录失败尝试都将该日志复制到新的镜像层中,导致一位用户的容器镜像膨胀到 800GB,最终形成了 272 层。 核心问题在于使用了 `docker commit` 而不是像 Dockerfile 这样的合适的镜像构建工具。讨论强调了在镜像中包含不必要的服务(SSH、cron)和日志的危险性。 许多评论者强调了使用卷来持久化数据以及构建最小化镜像的重要性。 虽然承认了错误,Sealos 辩护说他们的工作流程旨在提供一个完整的开发到部署生命周期,需要 SSH 访问来实现 IDE 集成。 该事件促使他们实施镜像压缩,一种用于扁平化镜像层数的工具,并监控镜像大小。 这篇文章引发了关于最佳实践、访问客户镜像进行调试的安全隐患以及更好的工程实践(如硬性大小限制)的争论。

要使用 Mastodon 网页应用程序,请启用 JavaScript。或者,尝试为您的平台使用 Mastodon 的原生应用程序。

这个Hacker News讨论围绕Asahi Linux项目的持续争端,正如The Register所报道。用户表达了对开源社区中反复出现的冲突感到沮丧,并质疑为什么这些项目经常演变成复杂且难以理解的争论。 一些人认为这并不能代表*大多数*开源工作,他们觉得相对正常。另一些人则指出了Ruby gems社区最近的问题,强调了对控制和贡献者访问的担忧。 一个共同的主题是,志愿贡献者投入大量空闲时间,可能会因治理变更而感到沮丧,从而觉得自己不被重视。一位用户甚至将这个问题与更广泛的社会动态联系起来,表达了对这些情况的看法感到不适。最终,这次对话反映了开源开发中反复出现的冲突模式。

更多

联系我们 contact @ memedata.com