## CI现状:为什么GitHub Actions不足 作者广泛使用过几乎所有可用的CI系统,尽管GitHub Actions因其与GitHub仓库的便捷集成而占据市场主导地位,但作者强烈反对使用它。核心问题在于令人沮丧、缓慢且经常崩溃的用户体验,特别是其日志查看器——调试的关键组件。 作者推崇**Buildkite**作为更优的替代方案,强调其速度、稳定性以及对开发者工作流程的尊重。主要优势包括一个实用的日志查看器、专注于编排而非复杂逻辑的YAML配置,以及对计算资源的关键控制。 对于Nix用户,**Garnix**提供了一个更简单、无需配置的解决方案。然而,对于大多数人来说,作者详细说明了GitHub Actions的陷阱:复杂的YAML、存在风险的Actions市场,以及与系统抗争的总体感觉。作者承认Actions的便利性,尤其是在小型项目上,但强调对于严肃的生产系统,长期的时间、挫败感和潜在安全风险使得Buildkite成为一项值得的投资。最终,作者提倡一种*支持*开发者的CI系统,而不是成为持续斗争的根源。
## CORS 解释:快速总结
CORS(跨域资源共享)是一种 Web 安全策略,规定了来自一个源(协议、域名和端口)的网页何时可以请求来自另一个源的资源。 这是 Web 开发人员常见的错误来源,源于浏览器保护用户免受潜在恶意脚本的侵害。
本质上,浏览器会强制执行同源策略,限制请求与当前页面相同的源。 CORS 提供了例外情况,*如果*服务器通过其响应中的 `Access-Control-Allow-Origin` 标头显式允许,则允许跨域请求。
主要有三种场景:**预检请求**(使用 `OPTIONS` 在主请求之前检查权限)、**简单请求**(方法和标头有限,无需预检)和**凭据请求**(包括 cookie/身份验证,需要更严格的服务器配置)。
**解决 CORS 问题**通常涉及配置服务器以包含适当的 `Access-Control-Allow-Origin` 标头。 对于开发,可以使用 Webpack 的代理功能在本地绕过 CORS。 最终,解决 CORS 往往需要在前端和后端开发人员之间进行协作,以确保为生产环境正确配置服务器。 虽然存在解决方法(例如带有 `no-cors` 的 `img` 标签),但它们不允许 JavaScript 访问响应数据。
## 幻塔驱动程序漏洞:摘要
一位研究人员尝试删除其幻塔账号,导致对游戏内核驱动程序的安全审计,揭示了重大漏洞。该驱动程序 `GameDriverX64.sys` 令人惊讶的是,即使作为安全关键组件,也缺乏混淆,这可能是由于与Windows的Hypervisor-Protected Code Integrity (HVCI)兼容所致。
该驱动程序的身份验证依赖于一个简单的硬编码“魔术数字”,允许攻击者利用两个主要缺陷:任意进程终止和任意进程保护。通过使用特定的IOCTL代码,攻击者可以杀死*任何*进程,甚至包括具有更高安全性的进程,如Protected Process Light (PPL),并限制对任何进程句柄的访问。这本质上允许一种“自带易受攻击驱动程序” (BYOVD)攻击,类似于过去其他游戏反作弊驱动程序中的事件。
讽刺的是,该驱动程序甚至没有被游戏本身主动加载,使其在玩家的系统中处于休眠状态。尽管如此,滥用的可能性仍然存在。一个概念验证已被创建,证明了这些漏洞,并且已提交了一个CVE (CVE-2025-61155)。该研究人员强调了编写不当的内核驱动程序的危险性以及即使启用HVCI,强大身份验证的重要性。
## ESP32-S3 作为软件摄像头
本项目演示了将 ESP32-S3(和其他 Espressif 模块)变成一个功能性的 USB 摄像头,*无需*物理摄像头。它利用了 ESP32-S3 原生的 USB 支持和 Espressif 的 UVC(USB 视频类)组件,将生成的视频帧发送到计算机。
该项目分阶段进行:首先,流式传输静态 JPEG 图像以验证功能;然后,解码动画 GIF,重新编码为 JPEG 并流式传输;最后,实时渲染 Pong 游戏并将其作为实时视频流式传输。视频以 MJPEG 形式传输——一系列单独的 JPEG 图像。
ESP32 处理 USB 枚举和协议细节,而开发者提供视频数据。ESP32-S3 上的 JPEG 编码性能足以实现近乎实时的流式传输,为 Pong 游戏实现大约 30fps。虽然初步测试遇到同步模式问题,但切换到批量模式解决了帧稳定性问题。
该项目展示了 ESP32 的功能,并为未来的开发打开了大门,例如集成真实的摄像头传感器以实现传统的网络摄像头应用。源代码是公开可用的。
## 比特币价格目标为零:Seeking Alpha 摘要
Seeking Alpha 报道了 Pivotus Partners 的 Richard Farr 的严峻预测:比特币 (BTC-USD) 的价格目标为零。Farr 认为比特币无法作为美元对冲工具,缺乏真正的机构支持,存在交易效率低下和环境问题,并且本质上是投机性的——与传统市场高度相关。
这种看跌观点与 Michael Burry 的担忧相呼应,Burry 将比特币视为纯粹的投机性资产,不同于黄金等传统对冲工具。他们都警告了潜在的“死亡螺旋”风险以及进一步价格下跌带来的重大后果。
潜在影响包括比特币矿商的破产、代币化金属市场的混乱、贵金属持仓的强制清算,以及对大量投资比特币的公司(如 MSTR)的威胁。该报告强调,如果比特币价格继续下跌,数字资产和相关股票 ETF 的波动性将进一步加剧。
## C协议问题
作者认为C的真正问题不在于其技术缺陷(未定义行为、整数问题),而在于它作为一种*协议*的普遍影响,这种协议决定了所有编程语言如何与操作系统和其他语言交互。由于C成为了通用语言,像Rust和Swift这样的新语言不得不实现复杂的外部函数接口(FFI)来“说C”——即使它们更愿意避免这样做。
这种对C的依赖造成了兼容性问题的噩梦。与操作系统API交互需要处理定义不明确的C头文件和ABI,即使在clang和gcc等主要编译器之间也存在不一致。解析C语言以其难度而闻名,并且具有不同ABI的平台/编译器组合数量(目标三元组)非常庞大。
作者用`intmax_t`等例子来说明,即使是对C类型看似微小的更改,也可能由于广泛存在的、通常未记录的假设而破坏现有软件。虽然存在前向兼容性技术,但它们很复杂,并且不能保证无缝集成。最终,C的统治地位意味着语言被其遗留问题所困扰,阻碍了创新并创造了一个脆弱的生态系统。作者得出结论,C的成功可能具有讽刺意味,因为它阻止了自身的改进,因为任何重大更改都有可能破坏它所建立的协议。