每日HackerNews RSS

502 请求 ID:9b079ffbcd65fd65-SIN 此服务当前不可用。请稍后重试。如果您是网站所有者,请参阅 Render 的文档以进行故障排除。

一位Hacker News用户分享了一个新项目:一个英国肉店的肉价追踪器 ([https://offer-spider.onrender.com](https://offer-spider.onrender.com))。该工具使用Nextjs和SQLite构建,每日从各种在线肉店(使用WooCommerce和Shopify平台)抓取价格,帮助用户找到最划算的优质肉类,用于烧烤和其他用途。 创建者是一位长期潜水员,因为缺乏一个集中比较价格的资源而感到沮丧,所以构建了这个工具。目前提供自由文本搜索,计划中的改进包括更精细的搜索选项(AND逻辑、筛选)、价格历史图表、扩展肉店覆盖范围,以及可能将追踪器扩展到其他产品类别。 初步反馈显示,一些用户遇到了一些错误,但对该工具的潜力表现出浓厚的兴趣。

英国《2023年在线安全法案》的一项拟议修正案旨在阻止16岁以下用户访问范围广泛的在线服务,远不止“社交媒体”。该修正案要求“受监管的用户到用户服务”——一个定义广泛的类别——实施“高度有效的年龄验证”措施,实际上禁止未成年用户使用。 这不仅会影响Signal等平台和家庭消息应用程序,还会影响共享列表、照片分享、带有聊天功能的在线游戏,甚至可能包括像维基百科这样的论坛。年龄验证的要求适用于*所有*用户,从而造成一种“请出示证件”的情况,个人可能需要验证身份才能访问常用的在线工具。 作者批评了该修正案的范围过大,源于现有《在线安全法案》中宽泛的定义。他们还质疑这项立法试图解决的明确问题,强调潜在的隐私影响以及年龄验证行业可能因此受益。

英国一项拟议的修正案引发了关于禁止16岁以下青少年访问大多数在线服务的争论。这场讨论源于Hacker News,核心在于对政府过度干预和侵蚀网络自由的担忧。 许多评论员认为,引导孩子们的网络体验应该由父母责任,而非政府干预。人们担心这会树立一个危险的先例,可能导致更广泛的监控和通信限制——被比作专制国家的 инфраструктура。另一些人指出,没有解决针对弱势老年群体的虚假信息问题是虚伪的。 这场辩论也凸显了年龄验证日益增长的需求,作为结束网络匿名化的手段,以儿童安全为幌子。虽然承认保护儿童的愿望,但评论员担心这会扼杀年轻一代的坚韧和独立发展。该立法本身也被批评为书写不佳。

GitHub正面临来自新兴工具的日益增长的挑战,这些工具正在挑战其在工作流、CI,甚至核心git托管方面的统治地位。作者详细描述了个人从GitHub Actions转向Blacksmith的转变,体验到更快速、更廉价的构建——强调GitHub即使在计算发生在其他地方时,也通过对Actions控制平面收费而可能存在的“寻租”行为。与此同时,像Linear这样的工具正在以更优的用户体验颠覆GitHub的“Issues + PRs”工作流。 虽然商业团队可以负担采用这些替代方案,但开源项目却被锁定,缺乏迁移的资源。Zig最近的举动,理由是不稳定的CI和不受欢迎的AI集成,表明了日益增长的沮丧。 David Heinemeier Hansson (DHH) 和 Rails 提供了一个关键的机会。Rails从GitHub迁移到Codeberg/Forgejo等平台将会具有颠覆性,迫使替代工具成熟,并为其他开源项目效仿铺平道路。这并非关于当前的准备情况,而是关于*创造*准备情况,充当一个更开放和更具竞争力的开发者生态系统的催化剂。最终,作者认为开源需要一个冠军来加速这一转变,而DHH/Rails则处于独特的位置来领导。

```Hacker News新帖 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交登录[标记]camwest 12小时前 | 隐藏 | 过去 | 收藏 LorenDB 11小时前 [–] 闻起来像AI垃圾。allanmacgregor 11小时前 | 父评论 [–] 根据结构和流畅度很容易判断,有一些老套的短语“发生了什么”。100% AI垃圾。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:```

## Stepped:在Rails中编排复杂工作流 Stepped 是一个Rails引擎,用于构建和管理复杂的多步骤工作流,将其组织成动作树。每个动作都会被持久化,通过Active Job执行,并可以触发进一步的动作,确保步骤间的依赖关系得到满足。Stepped 最初是为诸如应用程序部署(DNS配置、健康检查等)之类的任务而开发的,它允许您直接在Rails模型上定义动作。 主要特性包括**并发通道**(限制同时执行具有相同key的动作)、**重用**(通过校验和跳过冗余工作)以及对**外部动作**的支持(由外部事件完成)。动作具有诸如`pending`(待处理)、`performing`(执行中)、`succeeded`(成功)和`failed`(失败)等状态。 定义动作很简单:在模型上使用`stepped_action`,并使用DSL定义步骤、钩子和key。步骤可以使用`step.do`或`step.on`来排队执行进一步的动作。Stepped 还提供诸如前/后置钩子、超时、异常处理和全面的测试工具,以确保可靠的工作流执行。 **安装:** `bundle install`,`bin/rails stepped:install`,`bin/rails db:migrate`。Stepped 与 Active Record 和 Active Job 无缝集成,为在Rails应用程序中管理复杂后台进程提供了一个强大的解决方案。

## 分步操作:Rails 工作流编排 “Stepped”是一个新的Rails引擎,旨在管理复杂、分布式的流程——例如涉及DNS配置、健康检查和实例启动的应用程序部署等任务。它源自Envirobly的内部工具,旨在简化编排,而无需像Temporal这样的系统的开销。 该引擎在每个步骤之后将工作流状态持久化到数据库,确保崩溃恢复。 故障作为系统的一部分被优雅地处理,只需将操作标记为失败。 Stepped利用ActiveJob进行后台处理,并受益于GoodJob或SolidQueue等适配器,它们提供可靠的崩溃恢复。 一位用户询问了Temporal的替代方案,用于较小的流程,强调了Stepped在类似场景中的潜在用处。 该项目可在GitHub上找到。

作者最初因2022年与ChatGPT的负面经历而否定人工智能编码工具,坚持认为“手工”编写的、充满bug的代码以及“硬碰硬”的原则更为重要。然而,撰写一篇论述人工智能不会*取代*程序员的文章却引发了意想不到的反弹——不是害怕失业,而是强烈否认人工智能的编码*能力*。 作者意识到这种抵触源于过时的认知。自2022年以来,人工智能编码工具已经大幅改进,像Claude Code这样的工具现在能够胜任代码库范围内的重构等复杂任务。虽然仍然不完美且需要审查,但它们远非“垃圾”。 作者认为,拒绝探索这些工具并不能保护专业知识,反而会阻碍进步。工程师中正在形成一道明显的鸿沟,一部分人拥抱人工智能辅助,另一部分人则不愿接受,前者交付速度更快,能够承担更大的项目。呼吁很简单:如果你最近没有尝试过*现代*人工智能编码工具,请以开放的心态去尝试——基于旧经验的观点已经不再适用。

## 软件工程中的人工智能:格局转变 最近在Hacker News上的一场讨论集中在工程师们不愿采用人工智能工具上,许多人认为那些抵制者正在落后,技能差距正在扩大。虽然人工智能正在迅速改进——能够进行复杂的重构,甚至诊断微妙的错误——但人们仍然担心它对基本编程技能的影响。 许多人担心过度依赖人工智能会导致问题解决能力下降,并产生依赖性,阻碍未来的开发。一些人建议人工智能应该*增强*技能,而不是取代它们。另一些人指出,这与之前的技术转变(例如使用库而不是编写排序算法)相似,并强调将人工智能作为工具使用的重要性,并批判性地评估其输出。 一个关键点是,当前的人工智能工具通常需要大量的“引导”,并且可能产生冗长、有缺陷的代码,从而增加技术债务。然而,其他人则报告了显著的生产力提高,尤其是在自动化繁琐的任务和快速理解不熟悉的的代码库方面。最终,这场辩论凸显了软件开发中抽象化程度提高的转变,其中交付产品,而不仅仅是编写代码,是首要目标。

## 耐用执行:摘要 作者(前Porter CTO)最初不理解其价值,现在则大力推崇耐用执行,认为它是处理复杂、有状态工作流的强大解决方案。传统任务队列处理后台处理,通常依赖消息代理来实现持久性。然而,当任务变得复杂——涉及许多步骤、潜在故障和外部依赖关系时——简单的队列就显得不足。 耐用执行通过持久化工作流的*中间状态*来解决这个问题,允许在故障后(如机器崩溃)从检查点恢复,而不会丢失进度。这是通过追加日志实现的,确保确定性的重试和子任务的精确一次处理。 虽然耐用执行提供了显著的优势——抵御意外故障、程序化工作流定义以及跳过冗余工作——但它并非万能的解决方案。它需要确定性工作流(避免在执行过程中改变逻辑),并会引入开销。它最适合于管理复杂状态和保证完成至关重要的场景,可以补充而不是取代传统的队列系统。作者的公司Hatchet提供了一个基于这些原理构建的耐用执行平台。

## 耐用执行:摘要 这次Hacker News讨论的核心是**耐用执行**——一种构建具有韧性的、长期运行的异步工作流的概念。虽然前景可观,但许多人难以理解其优势,以及它是否适合他们的工作负载。 一个关键要点是,耐用执行并不能消除对**幂等性**的需求;工作流仍然需要任务可重复执行,而不会产生意想不到的副作用。然而,它简化了复杂故障场景的管理,尤其是在分布式系统中,协调跨多个服务的回滚具有挑战性。 像**Temporal、Hatchet 和 DBOS** 这样的平台旨在提供一种构建这些工作流的结构化方法,提供诸如流式处理、动态调度和改进的日志记录等功能。其中一些,例如 DBOS,直接与现有数据库(Postgres)集成,以增强耐用性。 其核心价值在于提供一个一致的框架来处理故障并持久化高级逻辑(循环、try/catch)——允许工作流从中断的地方恢复。 围绕是否*强制*开发者使用耐用工作流,还是提供更灵活的抽象,存在争论。最终目标是使构建可靠的异步系统更容易,但需要仔细考虑幂等性和潜在的复杂性。

## 黑客新闻头条:一场颠覆性的旋风(2024年5月16-17日) 本周科技界充斥着引人注目的消息!**ACM开放其出版物访问权限**是一项重大转变,被誉为开放获取的胜利。人工智能主导了讨论,人们对**GPT-5.2可能影响编程工作**以及**中国在人工智能芯片方面取得的进展可能超越西方**感到担忧。对人工智能的担忧延伸到抓取问题,有用户声称使用……非常规方法成功地扰乱了抓取。 除了人工智能,头条新闻也聚焦隐私:**苹果因在iPhone上投放广告而面临批评**,**三星、LG和TCL因在德克萨斯州收集电视数据而面临法律挑战**,以及警告称**“你的电视正在监视你。”** 其他热门话题包括一个新的**Linux内核Rust实验**,**“历史LLM”**的兴起(这些LLM基于古老数据进行训练),以及通过**RDMA上的SMB Direct**可能实现的网络速度提升。 最后,出现了一系列“……的死亡”的宣告——**Bash、拖放界面,甚至你现有的编码技能是否足够**。

一个在Hacker News上分享的新项目展示了一个对网站首页的讽刺性“平行宇宙”版本,其中每个标题都写成歇斯底里的点击诱饵。该项目使用AI生成耸人听闻的标题,例如“Delty (YC X25) 正在招聘,你可能不符合条件”和“数学已失效(直到现在)”。 该帖子引起了用户的娱乐和共鸣,许多人指出它与现有的点击诱饵驱动平台非常相似。一些人觉得它令人痛苦地准确,强调了我们很容易接触到这类内容。另一些人建议开发一个反向工程的AI来“去点击诱饵”标题,类似于Techmeme。虽然最初很有趣,但一些评论员表示这种新颖性很快就会消失,并要求减少发布类似内容。创建者回应说,他们只是想为他们认为“平静”的首页注入一些活力。

## CommerceTXT:赋能精准AI电商 CommerceTXT 是一项新标准,旨在为AI代理(如LLM)提供可靠的、可用于交易的电商数据。与侧重内容发现的llms.txt不同,CommerceTXT 直接向AI提供实时定价、库存和运输政策等关键信息。 主要特性包括指令,如 `@INVENTORY`(减少“缺货”幻觉)、`@SUBSCRIPTION`(用于定期支付)和 `@REVIEWS`(大幅减少评论数据的使用量,高达99.7%)。它专为准确性、法律合规性(映射到Schema.org)以及全球电商(支持多语言和货币)而设计。 CommerceTXT 具有显著优势:改善AI购物回复、减少错误、在AI电商领域获得先发优势,并通过最大限度地减少数据传输来降低AI的碳足迹。它优先采用只读模型作为v1.0版本,在引入交易能力之前,侧重于数据完整性和用户安全。 该协议是一个开放标准,由开放商家上下文工作组维护,旨在确保AI准确反映商家的产品和政策。

## CommerceTXT:AI购物数据的新标准 CommerceTXT的作者推出了一项开放标准,旨在改进AI代理(例如由LLM驱动的AI)访问电子商务信息的方式。目前,AI花费大量资源解析复杂的HTML产品页面,经常导致不准确的数据,例如错误的价格或库存状态。 CommerceTXT提供了一个简单、只读的文本协议——灵感来自`robots.txt`和`llms.txt`——为AI提供确定性的“真相”。它利用分形架构来传递必要的数据,从而大大减少token的使用量(380个token与HTML的8,500个token相比)。主要功能包括库存时间戳和评论验证,以对抗AI的“幻觉”。 该项目是开源的,并寻求反馈,尤其是在其“信任与验证”概念方面。一位评论者建议使用`.well-known`命名空间进行文件注册,而不是网站根目录。 更多信息请访问[https://commercetxt.org](https://commercetxt.org) 和规范[https://github.com/commercetxt/commercetxt](https://github.com/commercetxt/commercetxt)。

泛型允许编写在编译时适应不同类型函数,避免运行时类型检查。使用`when T is [type]`子句,单个函数体可以包含特定于类型的逻辑。例如,`some_function[T]`可以使浮点数加倍并递增整数。 更复杂的场景涉及多个类型参数,例如`list_contains[T, T2]`函数,它使用不同的比较方法搜索整数和字符串列表。安全的类型转换在`when`子句*内部*使用,确保类型正确性。 泛型也适用于返回值;`maybe_double[T]`返回类型为`T`的值,根据`T`执行浮点数或整数乘法。 重要的是,泛型函数可以调用其他泛型函数,类型会自动推断,从而实现分层抽象。该系统提供了一种表达性强、类型安全的代码,其中特化仍然是显式且可预测的,行为就像为每种类型量身定制一样。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 展示 HN: 我在我的编程语言(axe-docs.pages.dev)中实现了泛型 7点 由 death_eternal 1小时前 | 隐藏 | 过去 | 收藏 | 讨论 虽然花了一段时间,但现在Axe中的泛型函数已经可以工作了。附带文档、仓库和网站。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

这是一个为认真创业者打造的企业级SaaS样板项目,利用Next.js 16、React 19、Go 1.25和TypeScript构建了一个强大且类型安全的基础。它提供了一个完整的起点,包括身份验证(Stytch)、计费(Polar.sh)和AI集成(OpenAI & Mistral AI),并配备RAG管道。 主要特性包括多租户与数据隔离、细粒度的基于角色的访问控制以及全面的审计日志。UI使用Tailwind CSS和shadcn/ui构建,以实现快速、响应式开发。数据管理使用PostgreSQL与pgvector,并通过SQLC实现类型安全的SQL。 该样板项目设计用于使用Docker & Docker Compose进行轻松的本地开发,并提供Webhook UI和高级分析等功能。还提供咨询服务,用于托管配置、自定义功能开发和代码审计。它采用MIT许可。

穆罕默德,一位技术创始人,开源了一个使用 Go 和 Next.js 构建的 B2B SaaS 全栈启动器,可在 GitHub 上找到 ([https://github.com/moasq/production-saas-starter](https://github.com/moasq/production-saas-starter))。该项目旨在解决其他 SaaS 启动器中常见的供应商锁定问题,允许部署在任何带有 Docker 的 Linux 系统上,避免对 Vercel 或 Supabase 等平台的依赖。 后端使用 Go 1.25,因为它体积小、具有并发性、类型安全(通过 SQLC)和可预测的性能。它的结构是“模块化单体”,以便清晰地分离 Auth、Billing 和 AI 等功能,同时保持单个可部署的二进制文件。 预构建的功能包括身份验证 (Stytch)、计费 (Polar.sh)、AI 管道 (OpenAI RAG 与 pgvector)、OCR (Mistral) 和文件存储 (Cloudflare R2)。该启动器正在驱动作者自己的产品 [apflow.co](https://apflow.co),他正在寻求反馈,特别是关于模块边界和生产环境下的 Docker 设置。

更多

联系我们 contact @ memedata.com