2024-10-05

37 篇热帖

1. It's Time to Stop Taking Sam Altman at His Word (www.theatlantic.com)

OpenAI近期宣布获得66亿美元新融资,公司整体估值达1570亿美元,尽管每年烧钱70亿美元,远高于其收入。OpenAI的主要“产品”并非技术,而是基于未来科技的故事——CEO Sam Altman在最新宣言《智能时代》中断言AI将带来无限繁荣,解决气候问题、助人类登陆太空、发现物理学终极规律,并称数千天内可能诞生全能“超级智能”。这一硅谷式神话描述,将技术突破与商业竞争、创业精神紧密联系,鼓励巨额投资,形成泡沫,类似于历史上互联网、纳米科技、加密货币、机器人等技术的炒作。其对监管与大众的异化作用助力企业及投资者扩张。

Altman的产品目前表现平平,例如ChatGPT和DALL-E于2022年的惊艳使用感已逐渐消退,GPT-4甚至被认为只是普通聊天机器人。技术实际应用有限,常有虚假信息(hallucination)及尴尬失误;AI生成“垃圾内容”充斥网络,却难以带来真正的商业模式突破,产品与估值之间始终存在落差。OpenAI最新发布的o1也被Altman自嘲“初体验比长期使用更令人印象深刻”。

Altman坚持深度学习技术只需足够能量、算力与数据,即可解决一切问题,推动社会迈入“下一个繁荣阶段”。而许多计算机科学家对此表示怀疑,认为距离“通用人工智能”尚需若干关键科学突破。Altman计划实现的愿景甚至涉及未证实的聚变技术,并需数万亿美元投入,但他对前景极度乐观。实际上,Altman并非技术专家,而是以创业和融资能力闻名的硅谷投资人,其主要成就在于连接初创公司与资本,而非技术创新本身。

Altman的言论与其他“科技乐观主义”者类似,即只要坚持技术进步、减少监管(如版权法、虚假营销限制),市场就会带来美好生活。他表面支持AI“负责任的监管”,但公司却常对具体法规持抵触意见。核心职责是让大众关注虚构的AI未来而忽略现实的不足,例如AI被用于骚扰儿童、水与能源消耗巨大等实际问题。相比直面当下的挑战,更易沉迷于AI治愈气候、带来福祉的幻想。

AI技术及其企业已具备真实影响力,社会应基于实际结果和效果进行评价,而非仅凭其潜在可能。

2. Linux from Scratch (www.linuxfromscratch.org)

Linux From Scratch (LFS) 项目概述
Linux From Scratch 是一个提供逐步指导的项目,帮助用户完全从源代码构建自定义 Linux 系统,以实现高度个性化和学习目的。其组织包含多个子项目,各有特定功能:

  • LFS(Linux From Scratch):主书,是所有其他项目的基础,指导用户从零开始构建基础 Linux 系统。
  • BLFS(Beyond Linux From Scratch):扩展已完成的 LFS 安装,添加更多自定义软件,使系统更实用和功能丰富。
  • ALFS(Automated Linux From Scratch):提供工具自动化 LFS 和 BLFS 的构建过程,简化管理和重复安装。
  • MLFS(Multilib Linux From Scratch):LFS 的变体,配置系统以支持构建和执行 32 位二进制文件,适用于多架构环境。
  • GLFS(Gaming Linux From Scratch):基于 BLFS,专注于安装游戏支持软件(如 Steam 或 Wine),为游戏优化系统。
  • SLFS(Supplemental Linux From Scratch):补充 LFS 安装,超出 BLFS 范围,提供额外功能和增强。
  • Hints(提示项目):收集文档,解释如何以未包含在 LFS 或 BLFS 书籍中的方式定制和改进系统。
  • Patches(补丁项目):作为中央存储库,集中管理对 LFS 用户有用的补丁文件。
  • LFS Editor's Guide(LFS 编辑指南):文档描述 LFS 项目的开发流程和编辑标准。
  • Museum(博物馆):存档古老版本的 LFS 和 BLFS 书籍,供历史参考。

这些子项目共同支持用户从基础构建到高级定制和优化,覆盖开发、自动化、多架构、游戏支持等多个方面。

3. Cloudflare beats patent troll so badly it basically gives up (www.theregister.com)

Cloudflare 成功击败被其称为“专利流氓”的 Sable Networks,迫使后者支付赔偿金、授权全部专利组合,并永久放弃相关专利权。

Sable Networks 的性质
Sable Networks 被描述为典型的专利实体,本身不生产或创新,仅通过收购专利组合进行诉讼以谋利。其专利源自2006年从 Caspian Networks 获得的旧专利库。

诉讼背景

  • Sable 于2021年3月起诉 Cloudflare,最初涉及四项专利、约上百项权利主张。
  • 在 Cloudflare 的应诉过程中,案件缩减至仅涉及一项专利侵权指控。

关键诉讼结果
2024年2月,德克萨斯州陪审团裁定 Cloudflare 未侵犯 Sable 的“微流标签交换”专利(US7,012,919)。Cloudflare 同时证明该专利因现有技术而无效——1990年代 Nortel 和 Lucent 开发的两项更早路由器专利(US6,584,071 和 US6,680,933)构成关键证据。

最终协议条款
Sable 同意:

  1. 向 Cloudflare 支付 22.5万美元 赔偿金;
  2. 向 Cloudflare 提供其全部专利组合的免版税许可
  3. 将相关专利捐赠给公众,并通知美国专利商标局放弃专利权,承诺永不就这些专利起诉任何公司。

行业影响

  • 此前已有 Cisco、Fortinet 等五家公司在类似诉讼中与 Sable 和解,而 Splunk 曾在诉讼中成功驳回指控。
  • Cloudflare 通过该案传递了坚决对抗无依据专利诉讼的信号,其“Project Jengo”众筹查证项目也为本案收集了现有技术证据(该案例的奖项申请截至2024年11月2日)。

现状
Sable 的联系电话已停机,网站无法访问,其律师未对事件置评。Cloudflare 表示将继续致力于打击专利流氓行为。

4. Jazz – Apps with Distributed State (jazz.tools)
  • Jazz是一款主打“本地优先”的关系型数据库,可跨前端、后端及全球云存储运行,实现表、流和文件的部分同步,像简单的响应式状态一样易用。
  • 数据本地持久,自动与云同步,可根据需求在最终一致性与全局事务一致性之间权衡,既保证初始使用速度,也支持高性能后续操作。
  • 行级安全性及每条查询鉴权机制,将权限管理纳入数据库,简化后端复杂性,实现无往返安全管理。Jazz将RLS与认证深度融合,根据数据及用户JWT声明制定策略,优化查询逻辑。
  • 内置实时协作及完整的编辑历史,支持类似Git的分支历史API,方便多用户高频协同与数据版本溯源分析。
  • 提供流动式schema演化,迁移不是传统的阻塞操作,而是实时兼容层,实现高速特性迭代、自动向后兼容及安全管理复杂应用。
  • 多项设计旨在简化后端和基础设施,包括网络抽象、权限数据库化、认证集成、协作原生数据模型,以及集成blob存储、文件/图片CDN、持久流和实时消息队列,减少基础设施需求,提升开发效率。
  • Jazz Cloud提供全球同步、自动扩容的数据库云服务,单租户数据库服务永远开源且易于自托管,但Jazz Cloud更优化,零配置使用,支持比实例型数据库更细粒度的弹性扩展。
  • 采用用量计费模式,核心资源如I/O(每百万操作$0.15)、存储(每GB月$0.45)、出口流量(每GB$0.09),并给出参考价:1千月活用户、主要表单型应用,估算每用户月成本约$0.03,总计月账单约$32.4,支持企业定制。
5. Mitmproxy 11: Full HTTP/3 Support (mitmproxy.org)

Mitmproxy 11:完整 HTTP/3 支持

核心更新

1. 全面支持 HTTP/3 mitmproxy 11 现在在透明代理反向代理模式下均完整支持 HTTP/3。代理实例可同时监听 TCP 和 UDP 数据包,自动处理所有 HTTP 版本。

  • 反向代理模式:通过 mitmproxy --mode reverse:https://http3.is 可直接启用。
  • WireGuard 与本地模式:同样支持 HTTP/3。
  • 兼容性:已与 Firefox、Chrome、cURL 等多种客户端测试并修复兼容性问题。
  • 主要限制:Chrome 默认不信任用户添加的证书颁发机构(CA)进行 QUIC 连接。解决方法包括使用公共信任的证书(如 Let's Encrypt)、通过命令行启动 Chrome 或接受其回退到 HTTP/2。Firefox 无此限制。

2. DNS 功能显著改进 为应对 DNS HTTPS 记录及隐私增强技术(如 ECH),DNS 模块进行了重要升级:

  • 扩展查询类型支持:旧版依赖系统 getaddrinfo(仅支持 A/AAAA 记录)。新版基于 Rust 的 Hickory DNS 库重构,支持转发包括 HTTPS 记录在内的任意查询类型。可通过 dns_name_servers 选项自定义域名服务器。
  • 可选忽略 hosts 文件:新增 dns_use_hosts_file 选项,允许忽略系统 hosts 文件(如 /etc/hosts)。这有助于避免在同一机器上进行透明重定向时导致的循环连接问题。
  • 支持 DNS-over-TCP:由于现在支持任意查询类型,数据包可能更大,因此增加了对 TCP 传输的支持。
  • 剥离 ECH 密钥:ECH 技术通过加密初始 TLS ClientHello 来保护隐私,但会干扰 mitmproxy 基于 SNI 生成证书的机制。新版会从 HTTPS 记录中剥离 ECH 密钥,确保代理仍能获取目标域名并生成匹配证书。

项目背景与致谢

  • HTTP/3 支持工作始于 2022 年,由 Manuel Meitinger 和 Maximilian Hils 发起。
  • 本版本工作得到 NLnet 的 NGI0 Entrust 基金和 Google Summer of Code(隶属 Honeynet 项目)的支持。
  • 特别感谢导师 Maximilian Hils 的指导。
6. The Remarkable Life of Ibelin (www.thetimes.com)

文章主要内容为设备验证过程的提示信息,首先提示“Verifying your device, please wait”,即正在验证设备,请稍候;随后显示“Verification failed. Please try again”,即验证失败,请重新尝试。未涉及关于 Ibelin 的生平或其他细节。

7. Whence '\n'? (rodarmor.com)

文章通过追溯控制字符\n(换行符)在不同编程语言和编译器中的处理过程,解释了它最终为何代表字节0x0A。以justfile的例子开始,用户在justfile中定义x := "\n",并通过命令foo将其写入文件bar,实际上写入的是单字节0x0A。作者深入分析just的解析过程,发现just的字符串解析函数cook_string(用Rust实现)会将\n解析为Rust中的换行字符,即调用Rust的字符逃逸处理。Rust的编译器rustc在处理转义字符时,同样会将'n'映射为'\n'

rustc本身用Rust编写,但其早期版本是用OCaml实现的。OCaml版rustc处理方式是,通过其词法分析器将\n解析为OCaml的十进制字符逃逸'\010',而数字10对应0x0A。OCaml编译器就把这个字节值写进rustc的二进制文件中。随着rustc自举(由Rust写自己),这个0x0A不断被继承并写入后续rustc的二进制中。从早期OCaml rustc到现在的Rust rustc,版本迭代至少81次(截至rustc 1.81.0),这个0x0A字节始终被嵌入每个新版本的编译器中。

总结:\n作为换行符,对应字节0x0A,其意义源于最初OCaml编译器对十进制字符逃逸的解释。如今无论是just、rustc还是其他现代工具,写入的0x0A字节可追溯到早期编译器的字符处理方式和历史遗产,形成了有趣的技术传承链条。

8. Don't squander public trust on bullshit (livboeree.substack.com)

今天凌晨4点50分,德克萨斯州向全州范围内的所有手机发送了一条紧急警报,内容是关于一名叫Seth Altman的人在Lubbock的犯罪事件。作者认为,这种警报系统滥用行为严重消耗了公众信任。

作者指出,此类紧急警报仅应适用于极度危急的情况,如飓风、化学品泄漏或核威胁等,而非针对仅与极少数人相关的个别事件。然而,此次警报却在凌晨时分发送给了德克萨斯州超过3000万人口,覆盖范围极不合理。

这种滥用行为会导致公众对政府紧急警报系统的信任进一步下降。许多人可能会选择永久关闭手机的紧急警报功能,以避免被无关信息干扰睡眠。长远来看,这将削弱未来真正重大紧急事件发生时的预警和协调能力,增加公共安全风险。

此外,作者还提到,突然的警报可能直接影响公众健康,例如诱发心血管事件,并增加因睡眠不足导致的交通事故风险。德克萨斯州汽车依赖度高,安全驾驶尤其容易受睡眠质量影响。

最后,作者呼吁地方政府反思警报发送机制,避免类似“狼来了”的故事重演,否则不仅会消耗公共资源,还可能危及公众安全与健康。

10. Show HN: Open source framework OpenAI uses for Advanced Voice (github.com)

OpenAI 高级语音所用的开源框架:Agents

定义与目的 Agents 是一个用于构建实时、可编程服务器端参与者的框架。其核心目标是创建能够看、听和理解的对话式、多模态语音代理。

核心功能

  1. 灵活集成:支持自由组合语音转文字(STT)、大语言模型(LLM)、文字转语音(TTS)以及实时API。
  2. 任务调度:内置任务调度与分发功能,提供连接最终用户的分发API。
  3. 广泛的客户端支持:通过LiveKit的开源SDK生态系统构建客户端应用,支持所有主要平台。
  4. 电话集成:与LiveKit电话技术栈无缝协作,支持拨打或接听电话。
  5. 数据交换:使用RPC和其他数据API与客户端无缝交换数据。
  6. 语义轮次检测:使用Transformer模型判断用户发言是否结束,以减少打断。
  7. MCP支持:原生支持MCP协议,可一行代码集成MCP服务器提供的工具。
  8. 内置测试框架:提供测试工具和“裁判”(judges)以确保代理行为符合预期。
  9. 完全开源:整个技术栈(包括LiveKit服务器)均可在自己的服务器上运行。

安装与使用

  • 通过 pip install "livekit-agents[openai,silero,deepgram,cartesia,turn-detector]" 安装核心库及常用插件。
  • 提供了详细的文档和指南。
  • 推荐使用配套的 LiveKit Docs MCP 服务器LiveKit Agent Skill 来辅助AI编码助手进行开发。

核心概念

  • Agent:基于LLM、具有定义指令的应用程序。
  • AgentSession:管理代理与终端用户交互的容器。
  • entrypoint:交互式会话的起始点(类似Web服务器的请求处理器)。
  • AgentServer:协调任务调度并为用户会话启动代理的主进程。

代码示例 框架提供了从简单到复杂的多种示例:

  • 基础语音代理:展示如何设置包含STT、LLM、TTS和工具(如查询天气)的会话。
  • 多代理交接:演示如何在代理之间(如从信息收集代理切换到故事讲述代理)进行无缝过渡。
  • 测试:展示了使用pytest编写自动化测试,以验证LLM行为的非确定性。

丰富的示例库 项目包含多种实际应用场景的示例代码,包括:

  • 入门级语音代理、多用户按键通话、背景音频、动态工具创建、外呼电话、结构化输出、纯文本代理、多用户转录、视频头像、餐厅点餐预约,以及支持视觉的Gemini Live代理等。

开发与运行

  • 支持在终端本地测试,无需外部服务器。
  • 开发模式支持热重载,可高效托管多个并发代理。
  • 生产模式针对性能优化。
  • 项目欢迎社区贡献,并使用 uv 进行包管理,ruff 进行代码格式化。

生态系统 Agents框架是LiveKit生态系统的一部分,该生态系统包括适用于多种语言和平台的Agents SDK、LiveKit客户端SDK、入门应用、UI组件、服务器API、文档资源、CLI以及开源的LiveKit服务器。

11. Show HN: I built a Iridium/LTE satellite GPS tracker and took it to the Arctic (github.com)

自制铱星/LTE卫星GPS追踪器及北极测试

项目背景与动机

作者是一名业余电子爱好者,常使用GPS追踪器记录摩托车和越野车的行驶轨迹,并开发了GPX格式轨迹绘制应用GPXLAB。在偏远无移动网络覆盖地区(如海洋、沙漠),唯一可靠的通信方式是铱星卫星网络(如Garmin InReach设备所用)。作者的目标是自行构建一个结合LTE和卫星通信的GPS追踪器,最终动力来自加入S/Y Southern Star游艇前往北极的航行机会。

硬件设计与要求

设备需满足以下核心需求:

  • 全球范围工作
  • 在LTE覆盖区每10秒通过LTE发送数据
  • 在偏远区域每1小时通过铱星发送数据
  • 数据保存至SD卡
  • 实时显示位置、速度、航向等参数
  • 可通过I2C扩展传感器
  • 12V直流供电(适配汽车、船舶)
  • 约2小时备用电源
  • 防护外壳

主要硬件组件:

  • 主控制器:STM32F401(BlackPill开发板,运行FreeRTOS)
  • GPS模块:NEO 8M接收器
  • 铱星模块:RockBLOCK 9603N收发器
  • LTE模块:SIM7600G(配1NCE SIM卡,覆盖约170个国家)
  • 显示与存储:OLED 128x64显示屏、SD卡模块
  • 电源:降压转换器(7-32V输入,输出5V/3A)和UPS备用电池模块
  • 电路板:定制PCB整合所有组件,封装于聚碳酸酯外壳中

固件与工作原理

  • 固件基于C语言和FreeRTOS开发,通过CubeMX配置CMSISv1。
  • 主要任务线程:GPS数据解析(每秒通过UART接收NMEA数据,使用Minmea库)、通信管理、显示控制、SD卡存储。
  • 数据流:控制器每10秒生成包含位置、航向、速度、高度的报告加入队列。
  • 传输策略:LTE可用时立即发送;LTE不可用时转为通过铱卫星发送(需检测卫星可见信号);所有报告同步存储至SD卡。
  • 调试优化:利用硬件UART仿真便于通过USB转换器监控设备状态。

测试与北极航行验证

设备安装在游艇S/Y Southern Star上,从挪威特罗姆瑟出发,经巴伦支海航行至斯瓦尔巴群岛。

  • LTE覆盖:在挪威沿海及斯瓦尔巴群岛伊斯峡湾附近有效,数据每10秒发送;离岸约20海里后信号丢失。
  • 铱星表现:在海上无LTE区域,设备成功通过铱星每小时发送位置数据,覆盖稳定。
  • 对比测试:与船上Garmin InReach和Iridium Edge终端相比,自制设备在北极环境下可靠工作。
  • LTE天线优势:外部LTE天线在极地环境中比手机更早捕获信号。

项目总结与资源

  • 挑战与收获:项目帮助作者深入掌握STM32和FreeRTOS开发,设备在极端环境下验证成功。
  • 成本考量:铱星通过RockBlock通信成本较高(月租13英镑+100信用额度14英镑,仅约5kB数据),后续开发性价比低。
  • 相关资源:文中提及Minmea解析库、OLED驱动、软UART驱动及EasyEDA电路设计等开源工具。

该项目展示了如何整合商用模块构建专业级卫星追踪设备,并在实际远征中验证其可靠性,但受通信成本限制,更适合作为一次性技术挑战或定制解决方案。

12. LLMs, Theory of Mind, and Cheryl's Birthday (github.com)

该内容片段主要显示了GitHub界面元素,包括反馈提交、保存搜索功能以及登录/注册按钮。实际文章《LLMs, Theory of Mind, and Cheryl's Birthday》的正文内容并未包含在提供的文本中,因此无法生成该文章的有效摘要。

13. The profit-obsessed monster destroying American emergency rooms (www.vox.com)

文章核心摘要

本文深入探讨了私募股权(private equity)大规模收购美国急诊室(ER)后,如何将利润置于患者护理之上,系统性地破坏了急救医疗体系。

核心问题:利润驱动下的系统性破坏

  • 快速变质:私募股权收购急诊医疗集团(CMGs)后,通常会立即削减医生工时、用高接诊速度(如25分钟内必须接诊)等指标考核医生,迫使医生进行“大撒网式”检查,侧重于生产效率而非诊断准确性或成本效益。
  • 人员替换与成本削减:为了降低薪资成本,私募股权公司大量用护士执业者和医生助理替代医生,并通过创办大量住院医师项目人为制造医生过剩,以压低未来薪资。
  • 患者费用飙升:收购后,急诊服务价格被大幅抬高。公司常将急诊室置于保险网络外,以便向患者寄送高昂的“平衡账单”。研究显示,企业收购后患者成本平均上涨超过80%。
  • 医疗质量与医生士气受损:高压工作导致医生职业倦怠率高达63%,医疗决策权被剥夺。案例显示,仓促接诊可能导致误诊甚至患者死亡。许多医学生因此不再选择急诊医学专业。

私募股权的运作模式与动机

  • 杠杆收购与短期套利:私募股权通过高额借贷收购企业,目标不是长期运营,而是通过“优化”财务报表(如削减成本、提高营收)后在几年内高价转售获利,或将企业资产变现。
  • 针对急诊室的特殊性:不同于收购医院,私募股权在急诊领域只购买医生人力资源,不承担设施、设备等成本。这使其能专注于压榨劳动力和最大化账单收入。
  • 医疗系统的漏洞:私募股权能成功进入并破坏急诊医疗,部分归因于美国医疗系统本身存在的商业化过度、保险谈判不公、药价虚高等深层问题。

立法干预与局限

  • 《无意外账单法》:2022年生效的该法案禁止向急诊患者发送网络外意外账单,将账单争议转移至医疗机构与保险公司之间。这直接导致了几家大型私募股权支持的急诊集团破产或重组。
  • 局限性:该法案执行不力,存在漏洞(如不覆盖救护车),且患者往往不知情或无法有效维权。私募股权集团并未完全退出市场,仍在扩大急诊领域的足迹。

患者自我保护建议

尽管制度性问题需要系统性改革,文章仍为患者提供了实用建议:

  1. 提前规划:查询保险公司网络内的急诊室,优先选择。
  2. 交通选择:情况稳定时,避免使用网络外救护车(尤其警惕私募股权拥有的救护车)。
  3. 审慎签署文件:急诊室无权要求患者签署放弃《无意外账单法》保护的表格,如遇要求应拒绝并举报。
  4. 积极维权:收到不合理账单后,向“无意外账单帮助台”投诉,并寻求消费者权益组织的帮助。
  5. 呼吁系统性改革:支持加强执法、要求交易透明度、关闭税收漏洞等政策倡导,并可参与当地医院董事会以施加社区影响。

结论

私募股权对急诊室的侵蚀是一个典型例证,展示了短视的金融利益如何侵蚀关乎生命的公共服务。它不仅加剧了医生的“道德伤害”和患者的财务与健康风险,也暴露了美国医疗体系整体性的失灵。解决之道不仅在于患者个人的警惕,更在于公众意识和政策层面的根本性变革。

14. The Globus INK: a mechanical navigation computer for Soviet spaceflight (www.righto.com)

Globus INK:苏联航天的机械导航计算机

基本概述

Globus INK(官方名称“空间导航指示器”,俄文缩写ИК)是苏联“联盟”系列飞船上使用的机电模拟导航计算机。它通过一个旋转的地球仪来直观显示飞船在地球上方的位置,是苏联航天器上极具特色的导航仪器。

主要功能与工作原理

  • 位置显示:通过旋转的地球仪和固定的十字准线指示飞船实时位置。地球仪表面详细绘制了地形特征(山脉、河流等)和国界线,便于宇航员与窗外景象对比定位。同时提供纬度和经度数字显示。
  • 光照指示:底部表盘显示飞船进入阳光区或阴影区的时间,对接作业时至关重要。
  • 轨道计数:记录飞船绕地球飞行的圈数。
  • 着陆预测:切换模式后,地球仪旋转至指定“着陆角度”对应的位置,显示若当时启动制动火箭飞船将降落何处(精度约150公里)。

机械结构与关键技术

  • 地球仪驱动:地球仪通过精巧的双轴旋转机构实现运动——赤道部分作为金属环绕水平轴旋转,内部齿轮系统驱动地球仪绕南北极轴旋转。两个旋转轴通过同心轴传动。
  • 轨道倾角固定:地球仪轴线与水平面成51.8°夹角,对应拜科努尔发射场的标准轨道倾角。此设计使得仅转动地球仪即可模拟标准轨道,但也限制了它只能处理固定倾角的圆轨道。
  • 可变转速实现:通过“锥形凸轮”机构实现轨道周期调整(±5分钟)。三个凸轮从动件位于锥形凸轮不同径向位置,获得不同旋转速度,通过差动齿轮叠加,最终驱动地球仪以所需角速度旋转。
  • 经纬度计算:纬度由特定形状的凸轮驱动表盘振荡;经度则通过凸轮输出与地球自转叠加(差动齿轮实现)产生。
  • 驱动方式:由两个棘轮螺线管提供动力,接受27伏、1赫兹的电脉冲,每次脉冲使齿轮前进一齿,驱动整个机械系统。

电子部分与接口

  • 虽以机械为主,但含电子板,通过四个继电器和晶体管控制着陆模式下的电机驱动。
  • 配备360°电位器,将轨道位置转换为电压信号,可能用于向飞船其他设备输出。

历史与发展

  • 起源:最早的型号ИМП(IMP)自1960年代起为“东方号”和“上升号”飞船开发。
  • 改进:INK型号为“联盟号”飞船(1967年起)设计,功能更完善(增加光照指示、着陆角度控制等),集成于“天狼星”信息显示系统。
  • 退役:直至2002年“联盟-TMA”飞船换装数字显示器,Globus才被取代。
  • 阿波罗-联盟测试计划:文中分析的这台Globus表面添加了NASA测控站标记,表明它曾用于1975年阿波罗-联盟对接任务。

局限性

  • 需手动输入初始参数(起始位置、轨道周期等),不接收外部导航数据(如惯性测量单元),因此精度有限。
  • 仅适用于固定倾角的圆轨道,在轨道变化(如交会对接)时无效。
  • 为不同轨道倾角需制造不同的Globus单元。

结论

Globus INK是机械计算的杰作,通过复杂的齿轮、凸轮和差动系统实现了轨道计算功能,提供了远超当时电子计算机显示能力的高分辨率全彩直观显示。尽管存在精度和灵活性的限制,它体现了苏联航天工程独特的设计思路,直至21世纪初才被数字技术替代。

15. Fuzzing 101 (github.com)

Fuzzing 101 课程摘要

课程目标

Fuzzing 101 是一门面向希望学习模糊测试基础并掌握在真实软件项目中发现漏洞技能的学员的实践课程。课程包含10个基于真实目标的练习,旨在通过动手实践让学习者掌握模糊测试技术。

课程结构与内容

课程包含10个逐步进阶的练习,每个练习针对一个特定软件目标,要求找到指定的已知漏洞(CVE)。练习涵盖了从基础到高级的模糊测试主题与技术。

练习编号 目标软件 需发现的CVE 预计用时 主要学习主题
1 Xpdf CVE-2019-13288 120分钟 AFL基础工具链
2 libexif CVE-2009-3895, CVE-2012-2836 6小时 库的模糊测试,开发环境配置
3 TCPdump CVE-2017-13028 4小时 地址消毒器(ASan)
4 LibTIFF CVE-2016-9297 3小时 代码覆盖率分析
5 Libxml2 CVE-2017-9048 3小时 字典,基础并行化,命令行参数模糊测试
6 GIMP CVE-2016-4994, 附加漏洞 7小时 持久化模糊测试,交互式应用模糊测试
7 VLC media player CVE-2019-14776 6小时 部分插桩,模糊测试驱动编写
8 Adobe Reader 无指定 8小时 闭源应用模糊测试,QEMU插桩
9 7-Zip CVE-2016-2334 8小时 WinAFL,Windows应用模糊测试
10 (最终挑战) Google Chrome / V8 CVE-2019-5847 8小时 Fuzzilli,JavaScript引擎模糊测试

适用对象与要求

  • 适用对象:任何希望学习模糊测试基础或学习如何在真实软件中发现漏洞的人员。
  • 基本要求
    • 一个可连接互联网的Linux系统(建议使用Ubuntu 20.04.2 LTS)。
    • 推荐具备基本的Linux操作技能。
  • 使用工具:课程主要使用 AFL++(AFL的一个增强版分支)进行练习。

核心技术概念

  • 模糊测试:一种自动化软件测试技术,通过向程序提供随机或变异的输入并监控其异常或崩溃情况。
  • 覆盖引导的进化型模糊器:课程所使用的核心工具类别。
    • 覆盖引导:通过插桩收集代码覆盖率数据,优先选择能探索新执行路径的输入,以提高发现新崩溃的概率。
    • 进化型:采用受进化算法启发的元启发式方法,通过变异和选择对初始种子集进行演化。

课程维护与社区

  • 课程内容会定期更新以修正错误(例如在Exercise 5中修正了wget相关笔误)。
  • 鼓励学习者通过GitHub Security Lab Slack的 #fuzzing 频道进行提问、分享经验或提供反馈。
16. Starbase: SQLite on the Edge (starbasedb.com)

StarbaseDB: SQLite on the Edge
StarbaseDB是一个基于Cloudflare Durable Objects的即插即用SQLite数据库服务,提供内置电池式功能,支持规模缩放到零,旨在简化边缘数据存储和查询。

核心特性

  • 快速部署:只需两个简单步骤即可部署,降低入门门槛。
  • 技术架构:构建在Durable Objects之上,利用其私有、事务性和强一致性存储,为SQLite提供分布式计算支持。
  • 用户友好:内置RESTful API端点、web-socket支持、图形用户界面(GUI)和ORM工具,开箱即用,提升开发效率。
  • 与D1的区别:相比Cloudflare的托管SQLite数据库D1,StarbaseDB提供更丰富的内置工具,如自动API生成和GUI,更适合快速开发。

用户反馈
开发者赞赏其易用性,认为它通过HTTP交互实现了SQLite的RESTful API,减少了后端代码编写需求,并利用Durable Objects的灵活性构建自定义数据库架构。

常见问题解答

  • 定义:StarbaseDB是Durable Objects之上的抽象层,基于SQLite,专注于快速数据操作。
  • 依赖:目前需要Cloudflare账户,但团队正计划推出托管服务。
  • 优势:相比其他方案,它提供更全面的开发工具集,简化边缘数据库管理。

资源和支持
提供策略指南和更新信息,帮助用户掌握最新功能。

17. Playing with BOLT and Postgres (vondra.me)

本文探讨了使用LLVM项目的BOLT工具优化PostgreSQL二进制文件的可能性。作者通过实验发现,BOLT能显著提升性能,在某些场景下最高可达40%。

核心概念与背景

  • 二进制布局的影响:程序在内存中的布局(代码、数据、函数位置等)对性能有潜在影响,即使是很小的布局变化也可能导致性能差异(通常<1%,偶尔更高)。传统的基准测试难以区分性能变化是来自代码改动还是随机布局变化。
  • BOLT的用途:BOLT是一个基于配置文件(profile)的二进制优化器,可以重新组织代码布局、拆分函数等以提升运行时性能。

实验过程与挑战

  • 初始尝试与问题:作者最初尝试使用Debian 16版本的BOLT工具包,但遇到了perf2bolt处理perf数据报错、缺少运行时库、优化过程中出现错误等问题。
  • 解决方案:通过从源代码编译LLVM 20版本(包括BOLT、clang、lld),解决了大部分问题。优化过程中遇到特定函数(如表达式解释器ExecInterpExpr)优化失败时,使用-skip-funcs选项跳过该函数。

性能测试结果

  • OLTP (pgbench):在简单的只读pgbench测试中,使用针对特定工作负载的配置文件优化后,性能提升高达30-40%。配置文件与工作负载匹配度越高,提升越明显。
  • OLAP (TPC-H):在22个TPC-H查询中,大多数查询获得**5-10%**的性能提升,其中查询8和18分别提升约50%和15%。表达式解释器未被优化可能限制了部分查询的提升潜力。
  • 配置文件的影响
    • 特定工作负载配置文件:效果最好,但针对性强。
    • 组合配置文件(如合并OLTP和OLAP的配置文件):效果接近最佳特定配置文件,且未出现性能回退。
    • 通用配置文件(如make installcheck):提升较小,但仍有效果。

结论与展望

  • BOLT优化能带来显著的性能收益,尤其适合CPU密集型工作负载。
  • 优化效果高度依赖所使用的配置文件,但即使使用“错误”的配置文件也未观察到性能回退。
  • 正确性方面,BOLT的优化与链接时优化(LTO)类似,已有Linux发行版安全启用LTO的经验。
  • 作者认为BOLT可能不会直接用于默认构建,但其优化原理可以指导代码和构建过程的调整,以生成更优的二进制文件。
18. Sailfish Mobile OS (sailfishos.org)
# Sailfish OS 移动操作系统摘要

## 概述
Sailfish OS 是一个基于 Linux 的欧洲移动操作系统,自2013年起面向市场,由芬兰公司 Jolla 开发和运营。它主打隐私保护,并提供独特的许可模式,允许本地化实施。该系统可运行 Android™ 应用(通过 AppSupport 方案),同时支持智能电视、嵌入式设备等多种硬件形态。

## 核心优势
- **可靠的企业级平台**:针对智能手机、平板及嵌入式设备优化,可适配企业和政府级解决方案。
- **强大安全功能**:支持全数据加密、Firejail 应用沙盒、VPN 内建支持、防火墙保护及基于 systemd 的核心服务沙盒隔离,提供企业级移动设备管理(MDM)能力。
- **开放开发者生态**:基于开源模型,与客户及开发者社区共同建设,提供跨平台构建工具、命令行界面及现代化开发支持(如 C++14、Rust)。
- **以用户体验为核心**:注重简洁的斯堪的纳维亚设计,支持手势操作,既可运行基于 Qt 的原生应用,也可在隔离沙盒中安全运行 Android 应用。

## 主要特性
- **高度可定制**:支持不同企业/政府需求,可配置设备策略、预装内容、UI 布局等。
- **专用设备模式**:适用于单一功能设备,简化连接性、安全及系统管理。
- **企业管理(MDM)**:提供远程设备配置、策略执行、软件管理、数据监控、多用户权限控制等 API。
- **Android 兼容**:支持运行 Android 应用(目前兼容至 Android 13 级别),但系统本身独立,并非 Android 分支。
- **隐私保护**:不收集或出售个人数据,用户可选择信任的云服务或自建服务;系统基于 Linux 及数百个开源项目构建,授权用户可获取完整源码。
- **自动备份**:支持加密数据自动备份至用户选择的云端或自建服务器。

## 安全架构
- **数据加密**:设备存储及外部存储默认加密。
- **网络防护**:内置防火墙、VPN 支持(含第三方插件 API)及企业级 WPA2 认证。
- **沙盒化**:应用与系统核心服务均在隔离环境中运行,限制不必要的数据访问。
- **及时更新**:支持空中下载(OTA)更新及热修复,快速应对安全漏洞。

## 用户体验改进
- **重新设计的浏览器**:基于 Gecko 引擎,注重安全性,支持站点权限管理、密码管理、证书查看、受限制的强制门户模式等。
- **事件视图**:无需解锁即可查看通知、日历事件及天气信息,界面优化提升可读性。
- **日历与邮件**:支持会议邀请处理、ICS 订阅、自动回复及高对比度模式。
- **通话与通讯录**:手势化来电接听/拒绝、快速回复、通话提醒、改进的联系人管理及存储选择。
- **输入法与语言**:支持35种语言,具备文本预测、纠错、分体键盘及中文输入法,优化蓝牙/USB 外接键盘支持。
- **附加工具**:录音机、改进的短信界面、省电模式、QR 码读取等。

## 开发者支持
提供现代化工具链(如 Docker 跨平台构建、Clang 代码模型)、持续集成(CI)系统及本地化工具。API 扩展涵盖相机控制、标签页迁移、通知发布、文本输入增强、媒体控制等。

## 可用性与资源
- 提供可下载的 Sailfish OS 版本(Sailfish X),供评估或开发使用。
- 发布白皮书详细介绍生态系统、架构及许可选项。
- 拥有活跃的开发者论坛社区。
19. I Stayed (zeldman.com)

本文作者分享了自己在Automattic公司面临离职诱惑时,最终选择留下的个人经历与心路历程。

  • 艰难的抉择:作者近期面临医疗债务和过往生意关闭带来的财务压力。公司CEO提供了一笔相当于半年薪水的离职补偿,这笔钱能极大缓解其经济困境。从现实利益角度,作者认真考虑过接受。
  • 坚定的留任:尽管经济压力巨大,作者内心深处深知自己绝不会主动离开Automattic。他尊重并怀念那些已离职的同事,将他们的离去视为个人损失,但他本人选择留下。
  • 留任的核心原因:作者相信公司所做的事业——即支持开放网络和内容自主权。他将此视为自己近三十年职业生涯的使命,并认为Automattic是践行这一理念的最佳平台。在公司近六年的工作让他能够从事有意义的工作,并相信未来会更好。
  • 对行业问题的认知:作者了解开源领域存在的“制造者-汲取者”问题,并认为公开应对这种失衡需要勇气。目前,相关法律问题已交由律师处理。
  • 未来的工作重心:作者强调,帮助他人始终是其工作的核心。他庆幸商业决策的责任不在自己,并表示公司团队将在未来一段时间内努力应对人员变动带来的挑战。文末附注“我们正在招聘”,暗示公司正处于发展进程中。
20. Max Schrems wins privacy case against Meta over data on sexual orientation (apnews.com)

欧盟最高法院裁定,社交媒体公司Meta不得利用从其平台外获取的用户性取向公开信息进行个性化广告投放,此举违反了欧盟严格的《通用数据保护条例》。这是奥地利隐私倡导者Max Schrems的胜利,他长期针对大型科技公司遵守欧盟数据隐私规则的行为提出挑战。

奥地利最高法院在审理Schrems的案件时,就如何适用GDPR向欧盟法院寻求指导,从而引发了此次裁决。Schrems曾投诉Facebook处理了他的个人数据(包括性取向信息)以向其投放定向广告,尽管他从未在账户中公开表明自己是同性恋。他唯一一次公开透露此信息是在一次小组讨论中。

欧盟法院在新闻稿中指出:“像Facebook这样的在线社交网络平台,不能在没有时间限制和数据类型区分的情况下,不受限制地使用所有已获取的个人数据用于定向广告。”法院认为,即使Schrems在小组讨论中透露了性取向,这也“不授权在线社交网络平台运营商处理其他可能从该平台外获取的、与其性取向相关的数据,以便进行聚合分析,从而向其提供个性化广告”。

Meta表示正在等待法院完整判决书的发布,并称其“非常重视隐私”。该公司在声明中称:“每个使用Facebook的人都可以使用一系列设置和工具,以管理我们如何使用他们的信息。”

Schrems的律师Katharina Raabe-Stuppnig对法院的裁决表示欢迎。她在声明中指出:“Meta基本上已经建立了20年的庞大用户数据池,且每天都在增长。然而,欧盟法律要求‘数据最小化’。”“根据这一裁决,即使用户同意广告投放,Meta数据池中也只有很小一部分数据被允许用于广告。”

21. Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers (github.com)

FFmpeg-over-IP 项目摘要

该项目旨在解决远程、容器化或虚拟化环境中使用 GPU 进行 FFmpeg 转码时遇到的复杂配置问题(如 GPU 直通、共享文件系统等)。

核心问题: GPU 转码强大,但访问障碍多:

  • Docker 容器需 --runtime=nvidia、设备挂载及驱动版本匹配。
  • 虚拟机需 PCIe 直通或 SR-IOV,配置复杂且 GPU 被锁定。
  • 远程机器需 NFS/SMB 等共享文件系统,带来路径映射、权限管理等难题。

解决方案: 在拥有 GPU 的主机(服务器)上运行 ffmpeg-over-ip 服务器。应用程序使用客户端二进制文件代替原生 ffmpeg,即可实现 GPU 加速转码,无需直接访问 GPU。

工作原理:

  1. 客户端:伪装为 ffmpeg,接收应用程序的参数。
  2. 连接:客户端通过 TCP 连接服务器,并发送经 HMAC 认证的命令。
  3. 服务器:运行一个特殊的、打过补丁的 ffmpeg。该版本将所有的文件读写操作通过 TCP 连接“隧道”回客户端处理,文件不会存储在服务器上。
  4. 结果:实时转发标准输出/错误输出,客户端随服务器上的 FFmpeg 进程退出并返回相同状态码。

架构简图:

客户端 (有文件,无 GPU)              服务器 (有 GPU)
媒体服务器调用 “ffmpeg”               守护进程监听 :5050
        |                                      |
  ffmpeg-over-ip-client               ffmpeg-over-ip-server
        |                                      |
        +--------- TCP 连接 ------------>+
        |                                      |
  本地文件系统 (实际文件)          补丁版 ffmpeg (文件 I/O 隧道回客户端)

主要特性:

  • 无需基础设施改造:不依赖 GPU 直通、共享文件系统(NFS/SMB)。
  • 简化访问:仅需一个 TCP 端口。
  • 预构建二进制:提供支持多种硬件加速(NVENC, QSV, VAAPI, AMF, VideoToolbox 等)的 FFmpeg/FFprobe 二进制文件,基于 jellyfin-ffmpeg 构建,无需单独安装。
  • 支持多客户端:同一服务器可同时处理多个客户端会话,每个会话独立进程。

快速开始: 提供了针对 Linux/macOS (curl 管道) 和 Windows (irm | iex) 的一键安装脚本,分别用于服务器和客户端。

支持平台:

  • 客户端与服务器 + ffmpeg:支持 Linux (x86_64, arm64)、macOS (arm64, x86_64)、Windows (x86_64)。

安全机制:

  • 使用 HMAC-SHA256 共享密钥对每个命令进行认证。
  • 仅服务器监听端口,客户端只进行出站连接。

许可证: 采用混合许可证:与 FFmpeg 补丁相关的部分 (fio/, patches/) 为 GPL v3,其余部分为 MIT。

其他资源: 项目提供了从 v4 升级、详细配置、Docker 集成、故障排除和从源代码构建的文档指引。

22. Gen AI Makes Legal Action Cheap – and Companies Need to Prepare (hbr.org)

文章指出,传统法律行动通常耗时、昂贵且分散精力。生成式人工智能的出现,使得客户、员工、竞争对手和监管机构更容易且更低成本地采取法律行动。例如,美国财政部去年为加强税务合规提出了一项旨在增加加密货币披露的规则,加密货币行业认为这些义务过于广泛,并进行了强烈抵制,甚至得到了一个非传统盟友的支持。这表明,生成式AI正在降低法律行动的门槛和成本,企业需要为此做好准备。

23. Rune: A local music player reviving Zune's classic aesthetic (github.com)

Rune Player 是一个复古设计与现代科技融合的本地音乐播放器,拥有音频分析和推荐功能,提供跨平台支持,旨在提高音乐管理体验。其设计灵感来源于 Zune 和 Windows XP 时代后的多款微软产品,重现简洁一致、高效的音乐播放体验,针对当前流媒体盛行、本地播放器逐渐衰退的趋势进行创新。

主要特性包括:

  • 独特设计:遵循用户意图,无广告或无用界面元素。
  • 高度可定制:响应式布局适应不同屏幕,支持全面键盘操作和可自定义色彩主题。
  • 音频分析与推荐:能够分析整个音乐库,根据曲目、专辑或播放列表生成智能推荐。
  • 动态 Mix:支持规则定制,如“与该专辑相似”“最常播放100首”“与我的收藏相似”“包含特定艺术家的歌单”,Mix 会随着用户的听歌和歌曲添加动态更新。

支持与发行模式:

  • Rune 采用 MPL 开源许可证,用户可免费修改和分发,但完全社区访问需付费购买许可证(基础价格为 $10,随地区、平台调整)。
  • 支持体系分为三类:付费成员可提交需求并享优先支持;官方二进制包用户可报告 Bug;自行编译用户可用社区支持。
  • 安装方式包括官方渠道(建议优先购买使用)、自编译、CI 构建包及 Scoop、Homebrew、Flatpak 等社区维护包(官方不保证安全与稳定)。

版本发布策略:

  • Production Queue(生产队列):官方维护,确保无关键问题,仅修复缺陷,不加新特性。修复流程为 Dev → Alpha → Beta → RC → Release。
  • Cutting Edge Queue(前沿队列):社区维护,实验性新功能,官方不会推送,若经 RC 阶段达生产质量,会替换生产队列版本并推送至用户。

贡献指南:

  • 所有贡献(Issue、PR)须用英文提交,文档协作仅限英文,对 Rune 软件自身的语言翻译贡献开放。
  • 未付费用户不能提交功能请求,功能建议需先与开发团队讨论规划。
  • 不接受 README 或开发文档翻译的 PR。

致谢:

  • 使用开源项目 Meyda 实现音频分析功能,感谢 Rust 和 Flutter 社区开发者的支持。

Rune 与微软无官方关联,项目创始人非微软员工。项目所有权及商标归 Microsoft 所有,Rune 仅为独立开源项目。

25. Congress fights to keep AM radio in cars (www.niemanlab.org)

美国国会推动在汽车中保留AM收音机

美国国会正在审议《AM广播车载法案》,以应对特斯拉、福特等汽车制造商在电动汽车中取消AM收收音机的趋势。车企声称电机干扰导致AM信号质量下降,且FM和卫星广播已足够。然而,广播行业游说立法强制安装,认为AM广播是重要的应急工具和公共媒体资源。

历史背景与公共利益
AM广播自20世纪初诞生以来,曾是美国主流的大众媒体形式,通过本地节目传递新闻、体育和娱乐内容。1934年《通信法》和FCC的成立确立了广播服务于公共利益的原则,例如“公平原则”要求电台保持政治中立。1920年代末,汽车收音机开始普及,成为驾驶体验的重要组成部分。

商业化冲击与内容变迁
1950年代FM广播因音质更佳逐渐取代AM在音乐领域的地位。1990年代电信法案放松管制后,媒体集团整合导致AM电台大量依赖右翼谈话节目,内容趋向单一化,削弱了其作为公共服务的功能。目前,超过4000家AM电台仍在运营,尤其在农村地区仍被广泛收听。

当前争议与未来方向
立法支持者认为,若政府以公共利益为由要求车企安装AM收音机,也应同时要求广播方遵守公共利益标准。文章以低功率FM社区电台为例,指出其通过本地化内容服务社区的成功模式,呼吁AM广播回归公共服务本质,提供多样化的本地信息而非党派化内容。

核心矛盾
提案反映出公共需求与商业利益之间的冲突:AM广播在应急和地域覆盖上具有不可替代性,但其内容质量与公共价值亟待通过监管重塑。

26. Popular gut probiotic craps out in randomized controlled trial (arstechnica.com)

流行肠道益生菌在随机对照试验中失效

核心结论

一项发表于《JAMA Network Open》的随机三盲安慰剂对照临床试验表明,常见于多种益生菌产品(包括达能Activia酸奶)的动物双歧杆菌乳亚种(Bifidobacterium animalis subsp. lactis),在改善成人功能性便秘方面并无显著效果。研究结果进一步质疑了该菌株对肠道健康的益处宣传。

研究设计与方法

  • 参与者:228名来自上海的中年成人(85%为女性),均被诊断为功能性便秘(每周完全自发排便≤3次)。
  • 干预:随机分为两组,每日服用一次益生菌(112人)或安慰剂(117人),持续8周。益生菌组服用冻干菌株HN019,初始剂量为7×10⁹ CFU,后续调整为4.69×10⁹ CFU。
  • 主要终点:每周完全自发排便次数的变化。
  • 数据收集:参与者记录排便日记,涵盖排便频率、粪便稠度、排便用力程度、腹胀腹痛及泻药使用情况。研究前后采集粪便样本进行微生物组和代谢物分析。

主要研究结果

  1. 主要终点无效

    • 益生菌组平均完全自发排便次数从0.73次/周升至1.58次/周。
    • 安慰剂组从0.81次/周升至1.5次/周。
    • 两组间无统计学显著差异,改善均被视为安慰剂效应。
  2. 次要终点无差异

    • 粪便稠度、排便用力程度、腹胀、腹痛等便秘症状指标在两组间无显著差异。
    • 便秘症状总评及生活质量评分也无组间差异。
  3. 粪便分析未见变化

    • 益生菌组虽检测到菌株HN019数量上升,但肠道菌群整体组成和多样性未发生显著改变。
    • 粪便含水量、短链脂肪酸及炎症标志物钙卫蛋白水平均无显著变化。

历史背景与商业争议

  • 达能Activia营销争议:2010年,达能因对Activia“治疗肠道不规律”的虚假宣传,与美国联邦贸易委员会及多个州达成2100万美元和解,并额外支付4500万美元解决集体诉讼。此后,达能将宣传话术弱化为“有助于支持肠道健康”。
  • 此前研究矛盾:达能引用的两项研究中,小型试验(197人)显示益生菌可能改善消化症状,但更大型的重复试验(324人)未能证实此效果。达能通过合并数据分析仍声称整体有效,但此次新研究进一步削弱了其科学依据。

研究结论

每日摄入该益生菌菌株对功能性便秘患者未产生临床显著益处。研究人员指出,益生菌在健康成年人中通常不会改变肠道菌群组成,这与观察到的疗效缺失一致。该结果为益生菌产品的营销宣传与科学证据之间的差距提供了新的例证。

27. (Re)Using rustc components in gccrs (rust-gcc.github.io)

gccrs 项目复用 rustc 组件

背景与动机

为加速开发并确保关键编译阶段与 rustc 行为一致,gccrs(用 C++ 编写的 Rust 编译器)决定复用官方 Rust 编译器中的组件和 crate。这些组件从外部 crate 到内部工作区包不等,均为 Rust 编写,这对 C++ 编译器 gccrs 构成了集成挑战。

复用的组件

  • rustc_parse_format:于 2024 年初集成,用于解析 Rust 格式字符串(如 println!("Hello {ferris}!"))。解析后生成代码片段,确保 gccrs 生成与 rustc 相同的标准库调用(如 core::fmt),保障运行时格式化行为一致。
  • polonius:下一代 Rust 借用检查器,目前可通过 rustc 的 -Z polonius 选项使用。复用它可避免自行实现复杂算法,减少与 rustc 的差异,确保借用检查等核心阶段的正确性。
  • 计划集成的组件:包括新的 trait solver 和安全转换(safe-transmutes)算法等,只要其逻辑与编译器内部表示相对独立。

为何要与 rustc 行为一致?

  • 借用检查:作为 Rust 核心部分,复用 polonius 可确保 gccrs 避免引入微妙差异,并受益于 rustc 已有的广泛测试。
  • 格式化与内联汇编:使用相同的解析器可保证模板字符串解析和生成的运行时调用完全一致。

集成挑战与实现方式

  • 内部表示差异:rustc 和 gccrs 的 AST 结构不同(如块表达式的表示),因此无法直接复用所有组件,仅限于那些可独立于特定 IR 的组件。
  • 当前集成方式:因 gccrs 尚未成熟,无法编译所需 Rust 组件,目前依赖 cargo 和 rustc 预编译这些 crate,再链接到 gccrs 可执行文件。
  • 未来自举流程
    1. 用 C++ 编译器构建无借用检查功能的中间 gccrs(禁用运行时禁用选项以避免生态影响)。
    2. 使用该中间编译器编译 polonius 等 Rust 组件(其他组件可能以模拟或简化的 C++ 实现替代)。
    3. 将编译好的 crate 链接到 gccrs,得到完整编译器(启用借用检查和格式化功能)。
    4. 用完整编译器重新编译这些 crate 以验证正确性。

总结

gccrs 通过复用 rustc 的关键 Rust 组件,在加速开发的同时确保编译行为与 rustc 一致。尽管存在 IR 差异和集成挑战,但通过当前链接方式和未来的自举流程,这些组件可有效融入 gccrs,推动编译器的成熟与兼容性。

28. One pioneering grizzly and her two cubs appear on Vancouver Island (hakaimagazine.com)

温哥华岛灰熊首次出现母熊

2024年夏季,一只雌性灰熊携两只幼崽现身不列颠哥伦比亚省温哥华岛。这一发现具有突破性意义,因为该岛自约1.25万年前的冰河时期末期以来,再无灰熊定居种群记录。这只母熊可能是该岛新种群建立的开创者。

历史背景与首次发现

  • 温哥华岛灰熊历史:化石证据显示灰熊在约1.25万年前从岛上消失。该岛拥有优质栖息地(如鲑鱼溪流、浆果地)和繁荣的黑熊种群,但始终未被灰熊重新定居。
  • 过往观察:过去十年间,偶有年轻雄性灰熊从大陆游过狭窄的约翰斯通海峡(最窄处约1.6公里)抵达岛屿东岸,但它们因无法找到配偶通常返回大陆。2020年春季曾有至少七只灰熊被发现。
  • 此次事件的独特性:这是首次确认有雌性灰熊抵达并已在岛上繁殖。她可能成为约1.25万年来该岛首个自持续灰熊种群的始祖。

专家分析:为何灰熊长期未能定居?

退休野生动物生态学家布鲁斯·麦克莱伦指出,可能的原因是:

  • 黑熊竞争:黑熊活动范围更小、觅食效率更高,且更易与人类共存。
  • 人类活动:历史上人类可能视灰熊为更大威胁,驱赶或猎杀它们。
  • 地理隔离:约翰斯通海峡的强劲海流构成屏障。研究显示雌性灰熊游泳能力有限(通常不超过两公里),此次母熊的成功渡海极为罕见。

种群重建的可能性与条件

  • 潜力评估:温哥华岛面积与台湾相当,但人口不足84万,且大多聚居南部,北部拥有广阔自然栖息地。麦克莱伦认为,未来可能有数百只灰熊在此生存。
  • 关键因素:如果这只母熊的两只幼崽均为雌性并存活至10岁以上,它们可与大陆游来的雄性交配,快速建立种群。若幼崽均为雄性,则需等待母熊再次与外来雄性交配并生育雌性后代。
  • 基因多样性:岛屿距大陆仅约37公里(相比科迪亚克岛),未来种群的基因多样性可通过与大陆个体的交配得到保障。

挑战与共存前景

  • 人类适应:麦克莱伦强调,居民需学习与灰熊共存,如妥善管理垃圾、为果园和蜂箱安装电围栏等,以避免冲突导致熊只死亡。
  • 生态影响:灰熊的加入将影响岛上长期缺失这一物种的生态系统。
  • 积极展望:该母熊已创造历史性纪录。麦克莱伦赞赏她的健康状态,并指出只要人类采取预防措施,灰熊种群有望在岛上繁荣。她的出现标志着该物种自然重新定居广阔栖息地的开始。
29. Otter Wiki: A minimalistic wiki powered by Python, Markdown and git (otterwiki.com)

Otter Wiki:一个基于 Python、Markdown 和 Git 的极简维基

这是一个名为 An Otter Wiki 的开源项目介绍。它是一个设计理念为极简主义的维基系统,其核心技术栈为 Python、Markdown 和 Git。

主要特性

  • 极简界面:支持暗黑模式,并提供自定义选项。
  • 便捷的 Markdown 编辑器:提供工具栏方便编辑。
  • 文件与图片管理:可以上传文件至页面,或直接在编辑器中粘贴图片。
  • 版本追踪:允许比较不同版本的历史修订,并支持回滚更改。
  • 用户认证系统:支持用户自行注册及密码找回功能。
  • 扩展 Markdown 语法:支持表格、脚注、格式块、提示框、数学公式以及 Mermaid 图表。
  • 实验性新功能(v2.18.0):引入了嵌入组件,如数据表格、图像框、信息框和附件列表。
  • 可自定义侧边栏:可以创建菜单和/或显示页面索引。
  • 实验性功能:包括 Git Web 服务器形式的仓库管理(支持自动与远程仓库同步)、插件支持。
  • 项目标志:一个由 Christy Presler 绘制并以 CC BY 3.0 许可发布的可爱水獭 Logo。

快速体验与开始使用

  • 在线演示:提供了一个在线运行的实例供用户体验。
  • 示例库:有一系列示例展示了该维基的功能。
  • 安装与配置:用户可通过提供的安装指南来部署自己的实例,详细的配置说明可在配置指南中找到。

参与贡献

  • 问题反馈与功能请求:可以通过 GitHub 提交。
  • 代码贡献:可以 Fork 仓库进行开发,然后提交拉取请求。开发环境的搭建说明可在“开发”部分找到。
  • 文档改进:欢迎通过向 otterwiki-documentation 仓库提交拉取请求来修正错误、补充内容或添加常见问题条目。

许可证

An Otter Wiki 是基于 MIT 许可证 的开源软件。

30. Show HN: Brisa Framework – Unifying server and client using the Web Platform (brisa.build)

Brisa框架是一个旨在利用Web平台标准统一服务器和客户端开发的现代Web框架。其核心特点是将服务器端渲染与轻量级客户端交互相结合,以优化性能和开发体验。

核心架构与特性:

  1. 默认服务器渲染:页面默认由服务器动态渲染JSX组件,初始不向浏览器发送任何JavaScript,实现“0字节”的客户端负载。
  2. 岛屿式架构:默认所有代码在服务器运行。仅src/web-components文件夹内的代码会作为Web组件在客户端执行。这些组件在服务器端通过SSR渲染,并在客户端利用原生Web API(如声明式Shadow DOM和Signals)进行激活和交互。
  3. 服务器端事件处理:借鉴了React Server Actions和HTMX的理念,允许在服务器上直接处理浏览器事件(如表单提交、点击事件)。同时提供诸如防抖(debounce)和乐观更新(optimistic updates)等扩展HTML属性。
  4. 内置国际化:提供完整的i18n支持,能够翻译页面和路由,并且只加载当前使用的翻译内容。
  5. 跨平台能力:通过与Tauri集成,仅需简单配置更改,即可将Web应用构建为Android(.apk)、iOS(.ipa)、桌面(.exe, .dmg, .deb)等多平台原生应用。
  6. 流式超媒体:在导航和服务器操作期间,通过HTTP流式传输超媒体,遵循HTTP的原始设计意图。

框架理念: Brisa的愿景是通过Web平台标准来统一开发流程。它将浏览器端的概念(如事件、Web组件)带到服务器端,让开发者可以捕获浏览器事件并在服务器组件中处理。框架强调最小化客户端资源占用,旨在利用Web的原生能力,为开发者提供一个从服务器到客户端的高性能、跨平台应用开发平台。

开源与社区: Brisa是一个开源项目,依靠社区贡献发展。为鼓励贡献,框架为首批帮助改进框架的贡献者提供T恤礼品。详细的文档可供进一步学习。

31. Ask HN: Is anyone working at least 4 hours daily on an Apple Vision Pro?
33. Adobe Cuts Perpetual License for Elements Down to Just Three Years (petapixel.com)

Adobe Elements 2025 功能更新与授权模式变化

核心变更:授权模式调整

Adobe 宣布其 Elements 系列创意软件(包括 Photoshop Elements 2025 和 Premiere Elements 2025)将不再提供终身许可证。取而代之的是三年期许可。用户支付费用(根据新购或升级有所不同)后,可使用该软件长达三年(36个月)。授权到期后,编辑功能将失效,但用户仍可通过 Elements Organizer 访问和管理文件。此变更不包含自动续费,预期用户需在到期后购买新版本。

价格信息

  • Photoshop Elements 2025 或 Premiere Elements 2025:新购三年许可为 99.99 美元,从旧版升级为 79.99 美元
  • 捆绑套装(两款软件):新购三年许可为 149.99 美元,升级为 119.99 美元

Photoshop Elements 2025 新增功能

  1. AI 驱动的移除工具:可轻松擦除并替换照片中的干扰对象(如多余的人或物),配合“对象移除”引导式编辑教程。
  2. 深度模糊滤镜:自动添加虚化效果,用户可调整模糊强度、焦距和焦距范围,模拟专业镜头效果。
  3. 颜色更换工具:允许用户选择对象并更换其颜色。
  4. 合成照片功能:借助 AI 主体检测,更轻松地将一个图像的主体与另一图像的背景融合,并提供“合成照片”引导式编辑。
  5. 其他更新:新增四个为静态照片添加动态效果的快速操作、纹理照片背景、4个新的引导式编辑(总数达59个),并完全支持 Apple M3 芯片以提升性能。

Premiere Elements 2025 新增功能

  1. 动态标题模板:提供对文本、对齐、方向、颜色等的精细控制。
  2. 白平衡工具:可对场景的特定部分或整个画面进行颜色和亮度调整。
  3. LUT 支持:允许视频编辑者使用 LUT 精确调整画面色调和氛围。
  4. 简化时间线:通过将特定文件类型分组,使用户界面更易于导航。
  5. 整合 Adobe Stock 标题模板:便于从素材导入到成片导出。
  6. 新增引导式编辑:提供多种新的视频编辑教程。

跨平台与同步功能

Photoshop 和 Premiere Elements 2025 与网页端及移动端配套应用配合工作(目前处于测试版)。这些应用允许用户通过浏览器或移动设备查看和进一步编辑在 Elements 中处理过的照片与视频,并简化分享流程。它们还可与 Elements Organizer 同步,实现跨设备文件访问。

37. Teenage hacker became a legend attacking companies, then his rivals attacked him (www.wsj.com)