502 请求 ID:9b079ffbcd65fd65-SIN 此服务当前不可用。请稍后重试。如果您是网站所有者,请参阅 Render 的文档以进行故障排除。
502 请求 ID:9b079ffbcd65fd65-SIN 此服务当前不可用。请稍后重试。如果您是网站所有者,请参阅 Render 的文档以进行故障排除。
英国《2023年在线安全法案》的一项拟议修正案旨在阻止16岁以下用户访问范围广泛的在线服务,远不止“社交媒体”。该修正案要求“受监管的用户到用户服务”——一个定义广泛的类别——实施“高度有效的年龄验证”措施,实际上禁止未成年用户使用。 这不仅会影响Signal等平台和家庭消息应用程序,还会影响共享列表、照片分享、带有聊天功能的在线游戏,甚至可能包括像维基百科这样的论坛。年龄验证的要求适用于*所有*用户,从而造成一种“请出示证件”的情况,个人可能需要验证身份才能访问常用的在线工具。 作者批评了该修正案的范围过大,源于现有《在线安全法案》中宽泛的定义。他们还质疑这项立法试图解决的明确问题,强调潜在的隐私影响以及年龄验证行业可能因此受益。
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则处于独特的位置来领导。
## 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应用程序中管理复杂后台进程提供了一个强大的解决方案。
作者最初因2022年与ChatGPT的负面经历而否定人工智能编码工具,坚持认为“手工”编写的、充满bug的代码以及“硬碰硬”的原则更为重要。然而,撰写一篇论述人工智能不会*取代*程序员的文章却引发了意想不到的反弹——不是害怕失业,而是强烈否认人工智能的编码*能力*。 作者意识到这种抵触源于过时的认知。自2022年以来,人工智能编码工具已经大幅改进,像Claude Code这样的工具现在能够胜任代码库范围内的重构等复杂任务。虽然仍然不完美且需要审查,但它们远非“垃圾”。 作者认为,拒绝探索这些工具并不能保护专业知识,反而会阻碍进步。工程师中正在形成一道明显的鸿沟,一部分人拥抱人工智能辅助,另一部分人则不愿接受,前者交付速度更快,能够承担更大的项目。呼吁很简单:如果你最近没有尝试过*现代*人工智能编码工具,请以开放的心态去尝试——基于旧经验的观点已经不再适用。
## 耐用执行:摘要
作者(前Porter CTO)最初不理解其价值,现在则大力推崇耐用执行,认为它是处理复杂、有状态工作流的强大解决方案。传统任务队列处理后台处理,通常依赖消息代理来实现持久性。然而,当任务变得复杂——涉及许多步骤、潜在故障和外部依赖关系时——简单的队列就显得不足。
耐用执行通过持久化工作流的*中间状态*来解决这个问题,允许在故障后(如机器崩溃)从检查点恢复,而不会丢失进度。这是通过追加日志实现的,确保确定性的重试和子任务的精确一次处理。
虽然耐用执行提供了显著的优势——抵御意外故障、程序化工作流定义以及跳过冗余工作——但它并非万能的解决方案。它需要确定性工作流(避免在执行过程中改变逻辑),并会引入开销。它最适合于管理复杂状态和保证完成至关重要的场景,可以补充而不是取代传统的队列系统。作者的公司Hatchet提供了一个基于这些原理构建的耐用执行平台。
## 黑客新闻头条:一场颠覆性的旋风(2024年5月16-17日) 本周科技界充斥着引人注目的消息!**ACM开放其出版物访问权限**是一项重大转变,被誉为开放获取的胜利。人工智能主导了讨论,人们对**GPT-5.2可能影响编程工作**以及**中国在人工智能芯片方面取得的进展可能超越西方**感到担忧。对人工智能的担忧延伸到抓取问题,有用户声称使用……非常规方法成功地扰乱了抓取。 除了人工智能,头条新闻也聚焦隐私:**苹果因在iPhone上投放广告而面临批评**,**三星、LG和TCL因在德克萨斯州收集电视数据而面临法律挑战**,以及警告称**“你的电视正在监视你。”** 其他热门话题包括一个新的**Linux内核Rust实验**,**“历史LLM”**的兴起(这些LLM基于古老数据进行训练),以及通过**RDMA上的SMB Direct**可能实现的网络速度提升。 最后,出现了一系列“……的死亡”的宣告——**Bash、拖放界面,甚至你现有的编码技能是否足够**。
## CommerceTXT:赋能精准AI电商 CommerceTXT 是一项新标准,旨在为AI代理(如LLM)提供可靠的、可用于交易的电商数据。与侧重内容发现的llms.txt不同,CommerceTXT 直接向AI提供实时定价、库存和运输政策等关键信息。 主要特性包括指令,如 `@INVENTORY`(减少“缺货”幻觉)、`@SUBSCRIPTION`(用于定期支付)和 `@REVIEWS`(大幅减少评论数据的使用量,高达99.7%)。它专为准确性、法律合规性(映射到Schema.org)以及全球电商(支持多语言和货币)而设计。 CommerceTXT 具有显著优势:改善AI购物回复、减少错误、在AI电商领域获得先发优势,并通过最大限度地减少数据传输来降低AI的碳足迹。它优先采用只读模型作为v1.0版本,在引入交易能力之前,侧重于数据完整性和用户安全。 该协议是一个开放标准,由开放商家上下文工作组维护,旨在确保AI准确反映商家的产品和政策。
泛型允许编写在编译时适应不同类型函数,避免运行时类型检查。使用`when T is [type]`子句,单个函数体可以包含特定于类型的逻辑。例如,`some_function[T]`可以使浮点数加倍并递增整数。 更复杂的场景涉及多个类型参数,例如`list_contains[T, T2]`函数,它使用不同的比较方法搜索整数和字符串列表。安全的类型转换在`when`子句*内部*使用,确保类型正确性。 泛型也适用于返回值;`maybe_double[T]`返回类型为`T`的值,根据`T`执行浮点数或整数乘法。 重要的是,泛型函数可以调用其他泛型函数,类型会自动推断,从而实现分层抽象。该系统提供了一种表达性强、类型安全的代码,其中特化仍然是显式且可预测的,行为就像为每种类型量身定制一样。
这是一个为认真创业者打造的企业级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许可。