2024-01-10

50 篇热帖

1. Is my plane a 737 MAX? (www.ismyplanea737max.com)

标题:我的飞机是737 MAX吗?

摘要:

该工具旨在帮助用户查询特定航班号的飞机是否为波音737 MAX型号。用户输入航班号后,工具会提供最近航班的实时、计划或已降落信息。需要提醒的是,航班时刻表和设备更换很常见,因此用户应核对预订信息以获取最新的机型数据。

重要更新: 由于航空数据成本高昂,流量远超预期,数据配额已耗尽。因此,该工具已暂停新请求,直到找到更经济的替代数据源。感谢用户的使用。

2. The teen mental illness epidemic is international (2023) (www.afterbabel.com)

全球青少年心理健康危机报告摘要

本文的核心论点是:一场始于2010年代初的青少年心理健康危机并非美国独有,而是在多个英语国家同步爆发的国际性流行病,尤其对女孩和Z世代(约1997年后出生)冲击最为严重。

核心发现:共同模式

研究者在美国、加拿大、英国、澳大利亚和新西兰五个英语国家的数据中,识别出一个一致的“基本模式”:

  1. 时间起点:青少年焦虑、抑郁和自残等心理健康问题的显著上升均始于2010年代初期(约2012年前后)。
  2. 问题恶化:青少年心理健康状况(包括自我报告的焦虑抑郁率以及自残住院率)出现实质性恶化。
  3. 性别差异:在绝对数量上,女孩受到的影响远大于男孩。
  4. 代际差异:在绝对数量上,Z世代受到的影响远大于 older generations(如千禧一代)。

各国证据概览

  • 美国:2010年后,报告患有重度抑郁症的女孩比例急剧上升;2010-2020年间,10-14岁女孩因自残前往急诊室的比率增加了约两倍。
  • 加拿大:2009年后,年轻女性自评心理健康“优秀或良好”的比例从76.5%大幅下降至2019年的54%;安大略省13-17岁女孩因自残住院的比率在2010年后上升了138%。
  • 英国:11-15岁女孩的焦虑和抑郁率在2004至2017年间大幅上升;13-16岁女孩的自残记录率在2011至2013年间飙升了近80%。
  • 澳大利亚:2013年后,16-24岁女性报告高水平心理困扰的比例从14.2%升至2020年的35.1%;12-24岁女性的精神健康住院率在2012年后持续攀升。
  • 新西兰:15-24岁女性被诊断为焦虑症的比例从2007年的约3%激增至2020年的24.8%;因自残住院的案例中,女孩的增长也尤为剧烈。

关键原因探析

作者明确指出,并非特定国家事件(如美国枪击案)或2008年全球金融危机(其时间点与危机爆发不符)导致了这一同步现象。他们认为,最能解释这一全球性、同步性危机的理论是:智能手机和基于社交媒体平台的童年生活方式在全球范围内的快速普及

  • 关键时间点:带有前置摄像头的iPhone 4于2010年推出,随后青少年大量换用智能手机。Facebook在2012年收购Instagram,极大地推动了该平台的普及。
  • 影响机制:从2012年开始,全球大量女孩每天花费数小时在这些强调社交比较和自我展示的平台上,这与她们心理健康状况的急剧恶化时间高度重合。

结论与展望

研究证实,青少年心理健康危机是一场国际性的流行病,在英语世界呈现高度同步的模式。作者呼吁全球应立即反思,是什么在2012年前后改变了全球的童年生活,并对发育产生了障碍。后续研究将继续分析斯堪的纳维亚国家、其他发达国家以及基于多国调查的数据。初步显示,危机在个人主义文化程度更高的国家(如英语国家)冲击更为严重。

3. I quit my job to work full time on my open source project (ellie.wtf)

Atuin项目概述 Atuin是一个命令行历史记录工具,能帮助用户快速检索过往执行的任何命令。它将shell历史存储在数据库中,记录命令的上下文信息,并支持端到端加密的跨设备同步。用户可自托管,也可使用官方托管的同步服务器。

创始人全职投入的决定 创始人Ellie在2023年12月辞去了在PostHog的基础设施团队领导职务,决定成立公司并全职开发Atuin。做出这一决定的主要原因是:

  1. 项目增长与维护压力:Atuin的用户和使用量在过去一年里大幅增长(日均历史记录上传量从约1万行增至近20万行),但随之而来的代码审查、问题处理和新功能开发需求,已超出业余时间的维护能力。好友兼共同维护者Conrad此前已退出,进一步加大了维护负担。
  2. 避免项目停滞:创始人感到在维护不力的情况下,项目可能失去活力甚至面临被放弃的风险。全职投入是为了给项目提供应有的关注和精力,推动其进一步发展。
  3. 个人追求:创始人一直有创业的想法,希望打造真正有用且受人喜爱的产品。

项目的现状与社区

  • 开源与免费:Atuin作为自托管工具将继续保持开源并免费使用。
  • 社区贡献:项目已获得超过150位贡献者的PR提交,建立了活跃的社区。
  • 基础设施与赞助:创始人一直自掏腰包支付服务器费用(用于存储海量加密历史数据)。虽在2022年末设立GitHub赞助后获得了一定资金以覆盖服务器成本,但收入不稳定且不足以支撑个人生计。维护者之间普遍面临“不宣传则赞助流失”的困境。

未来的商业模式与愿景 为了项目的可持续发展,创始人计划在现有免费功能基础上,引入付费的高级托管功能,主要面向高级用户和企业用户。这借鉴了Sidekiq项目创始人的理念:“如果构建了有价值的东西,就应该对其收费。”

长期目标 希望将Atuin发展壮大,最终能够传承项目,并有能力反哺其依赖的其他开源项目和人员。

联系与支持方式 文章末尾列出了项目的官网、论坛、邮箱、Discord、GitHub仓库及社交媒体链接,并欢迎用户通过GitHub Sponsors提供支持。不同赞助层级可获得贴纸、T恤等回馈,企业赞助还可获得公开致谢和链接展示。

4. SEC's X Account Hacked, Bitcoin Spot ETFs Not yet Approved (en.bitcoinsistemi.com)

根据2024年1月9日的更新信息,美国证券交易委员会(SEC)的官方X(原Twitter)账号遭到黑客入侵。

事件核心: 黑客通过SEC官方账号发布了一条虚假信息,声称SEC已批准比特币现货ETF的上市和交易。

官方澄清: SEC主席加里·根斯勒随后通过其个人X账号进行澄清,确认SEC的官方账号被入侵,并发表了未经授权的推文。他明确表示:“SEC尚未批准比特币现货交易所交易产品的上市和交易。”

现状与后续:

  • ETF状态: 比特币现货ETF未获官方批准
  • 假消息处理: 该虚假推文已从SEC的X账号中删除。

文章最后附有免责声明,指出内容不构成投资建议,并附有社交媒体账号的推广信息。

6. Building an e-ink picture frame that displays an iCloud photo album (ben.page)

制作一个能显示 iCloud 相册的电子墨水相框

作者为父母制作了一个电子墨水相框(基于旧电子阅读器改造),可以循环播放来自共享 iCloud 相册的照片。

设备选择与改造

  • 电子阅读器:选用 Nook Simple Touch Reader,因其底层运行 Android 系统,更容易获取 root 权限并运行安卓应用。在二手平台(如 eBay、Facebook Marketplace)可以 10-30 美元购得。
  • 系统改造:按照 Terence Eden 的教程进行 root 和安装 Android 系统,需要一张 microSD 卡。
  • 软件应用:安装名为 "Electric Sign" 的旧版安卓应用,用于在屏幕上定时刷新显示网站内容。由于 Nook 不支持 SSL,必须搭建一个使用 HTTP 协议(而非 HTTPS)的网站。作者为此配置了自定义的 Nginx 服务器。

照片源设置

  • iCloud 共享相册:作者希望使用共享的 iCloud 相册作为照片源,这样家人可以直接通过 iOS 的 "照片" 应用添加新照片。
  • API 逆向工程:iCloud 照片共享相册没有官方 API,但通过将相册设为公开链接,使用浏览器开发者工具分析其 API 请求,并复现这些请求来获取照片(需保持相册持续公开)。
  • 代码实现:提供了一段 Laravel 代码示例,用于从 iCloud 流中随机获取一张最高质量的照片。
  • 图像处理:使用 wsrv.nl 的 API 将照片裁剪为 Nook 屏幕的精确尺寸(600x800 像素),并稍微增加亮度(mod=1.2)以优化电子墨水屏的显示效果。由于 Nook 只支持 HTTP,图像路由会代理苹果的 HTTPS 图片。

相框组装

  • 相框选择:使用一个能装入 5x7 照片并带有衬边的 8x10 相框,以容纳 Nook 主体、边框及底部的充电线。
  • 物理安装:将 Nook 强行塞入相框并扣上后盖,充电线从底部露出。为遮盖 Nook 屏幕顶部和底部的黑色边框,添加了白色卡纸使其更融合。

最终效果

将 Nook 固定在相框中,连接充电线以保持常电,设置好显示共享相册照片的网站,整个项目运行良好。家人可以直接在 iPhone 上向共享相册添加新照片,相框会自动更新显示。

7. Contra Wirecutter on the IKEA air purifier (2022) (dynomight.net)

本文针对《Wirecutter》评测对IKEA FÖRNUFTIG空气净化器的批评进行反驳,指出其评测存在事实错误、误导性陈述和自相矛盾。文章核心观点如下:

对《Wirecutter》评测的主要批评:

  1. 关于滤网标准的误导:《Wirecutter》批评IKEA净化器“非真正的HEPA”并称其滤网为“PM2.5滤网”。文章指出,“true-HEPA”无法律或科学定义,且IKEA滤网实际符合欧洲HEPA标准中的E12级(捕获99.5%所有尺寸颗粒),而推荐产品使用H13级(捕获99.95%)。两者性能差异对于家用净化器微乎其微。
  2. 物理学原理的误解:《Wirecutter》声称H13滤网对极细颗粒(如0.01微米烟雾)效果显著优于E12。文章解释,空气过滤器依靠惯性碰撞、拦截和扩散等多种机制,并非简单筛分。最易穿透的颗粒尺寸(MPPS)约为0.15微米,E12和H13规格均要求在此尺寸下达到指定效率。极小颗粒因扩散效应易被捕获,两种滤网均表现良好。
  3. 性能测试结果不可信:《Wirecutter》的测试显示其推荐产品性能远超标称CADR(洁净空气输出比率),且与其自身其他测试结果矛盾,表明测试方法可能不严谨。
  4. 经济逻辑自相矛盾:《Wirecutter》以性能较低为由不推荐便宜节能的IKEA净化器,却在另一评测中推荐同样性能较低但节能的其他产品,理由不一致。

IKEA空气净化器的优势:

  • 成本与能效:初始价格低,年耗电量远低于对比产品,滤网更换成本更低。
  • 适用性:在较小空间(如卧室)内,其CADR足以将颗粒物浓度降至很低水平(示例计算中降至2.39 μg/m³)。
  • 设计:外观美观,配有可清洗预滤网,颗粒物滤网和碳滤网可独立更换。

结论: 文章认为,IKEA FÖRNUFTIG对于小空间是一款极具性价比的选择,其能效、成本和设计优势明显。而《Wirecutter》的评测基于错误信息和矛盾逻辑,其否定该产品的理由不成立。

8. Gmail and Yahoo’s 2024 inbox protections and what they mean for email programs (www.mailgun.com)

Gmail 和雅虎宣布将于2024年2月起对大批量邮件发送者(每日发送超过5000封邮件至相关邮箱的发件人)实施更严格的收件箱保护措施。这些变化旨在提升收件箱安全性、改善用户体验,并非全新要求,而是对现有电子邮件发送最佳实践的强化执行。行业预计这些标准将很快普及。

三项核心新要求:

  1. 严格实施邮件认证:发件人必须使用 SPF、DKIM 和 DMARC 协议验证其身份,以防止欺诈和钓鱼攻击。此前,DMARC 并非强制要求,但现在对于希望被视为合法发件人来说是必需的。目前有约40%的发件人未完全实施这些认证。
  2. 提供一键退订功能:邮件中必须包含允许收件人通过邮箱提供商用户界面(UI)内的一键操作即可取消订阅的链接。发件人必须在收到退订请求后两天内执行。传统的退订流程(如需要确认或多步骤操作)将不再符合要求。
  3. 严格控制垃圾邮件率:发件人必须将其垃圾邮件投诉率维持在0.3%以下。Gmail 和雅虎将对此进行严格监控。该阈值与行业现有高标准相符,许多邮件服务提供商的内部目标是将此率控制在0.1%以下。

对发件人的影响与应对建议:

  • 适用范围:主要针对“大批量发送者”。但计算标准可能包含峰值发送量,发件人需评估自身在大型活动或节假日的发送习惯。
  • 主动准备:发件人应在2024年规则生效前主动采取措施,而非被动应对。
  • 具体行动
    • 认证:为域名设置所有三种认证(SPF、DKIM、DMARC),并至少配置 p=none 的 DMARC 策略。
    • 退订:在邮件头部中添加 List-UnsubscribeList-Unsubscribe-Post 头部(遵循 RFC 8058 标准),实现一键退订,并建立在两天内处理请求的流程。
    • 垃圾邮件率监控:持续监控垃圾邮件投诉率及其他互动指标。利用 Google Postmaster Tools 等工具(Gmail 不提供传统的反馈循环)。通过列表管理、清理不活跃订阅者等最佳实践来优化列表,确保只向互动良好的收件人发送邮件。

行业背景与工具支持:

邮件服务商(如 Sinch Mailgun)通常已默认支持 SPF 和 DKIM 认证。此外,他们提供各种工具和服务(如邮件验证、收件箱投递测试、Google Postmaster 集成、退信分类等)和专家支持,帮助发件人适应这些新标准,确保邮件的送达率和安全。

9. Lego Mechanical Computer (www.drmoron.org)

Lego Mechanical Computer 文章摘要

提供的内容是一个网页片段,关联到标题“Lego Mechanical Computer”,但未包含文章正文的具体描述。该片段主要显示网页的页脚元数据,包括以下关键信息:

  • 博客名称:The Blog of Dr. Moron
  • 版权信息:© 2013 - 2023
  • 生成工具:使用 Hugo v0.151.2 静态网站生成器
  • 主题:Beautiful Hugo,改编自 Beautiful Jekyll

内容中未涉及乐高机械计算机的原理、结构或功能细节,因此无法从提供的片段中获取该主题的技术性信息。摘要仅基于可见的元数据,反映了网页的基本配置和归属信息。

10. OpenWRT turns 20; wants to launch their "first upstream supported" design (lwn.net)
11. Databases and why their complexity is now unnecessary (blog.redplanetlabs.com)

数据库及其不必要的复杂性

本文探讨的不是单个数据库的问题,而是数据库作为整体在概念层面和存在数十年来所面临的根本性问题。其核心观点是,当前数据库设计存在不必要的复杂性,并存在更优的解决方案。

主要问题分析

  1. 全球可变状态的危害
    数据库本质上是全球可变状态,且比普通全局变量更复杂,因为其交互常分布于多个系统且具有持久性。数据损坏难以完全修复。而事件溯源与物化视图的组合是更好的方法。

  2. 受限的数据模型
    数据库围绕特定数据模型(如键值、文档、关系型等)构建,单一模型无法支持所有用例。数据结构作为更基础的抽象,可表达任意数据模型。使用数据结构定义索引,能让数据存储适应应用需求,而非相反。

  3. 规范化与反规范化的矛盾
    关系型数据库中,规范化可保证数据一致性但查询效率低,反规范化提升查询性能却引入不一致风险。传统架构将“真实数据源”和“快速查询索引”混为一谈。解决方案是分离两者:一个子系统维护真实数据源,另一个从该源物化出多个索引存储。事件溯源结合物化视图可实现此目标。

  4. 受限的模式
    数据库的存储值类型和查询能力有限,难以直接存储领域对象,常需借助ORM等适配器库,导致额外复杂性和抽象泄漏。

  5. 复杂的部署
    完整后端需组合多种工具(数据库、处理系统、监控等),部署和协调过程复杂。当前“点菜模型”(为各组件选择最优工具再整合)成本高昂,且工具独立设计导致集成困难。

核心思想:后端的第一性原理

后端的基本功能是接收数据并回答查询。最通用的查询模型可表示为:

查询 = 函数(所有数据)

实践中通过引入索引(数据的预计算视图)来优化:

索引 = 函数(数据)
查询 = 函数(索引)

所有后端都是此模型的实例,但通常由分散的工具组合实现,缺乏通用性。

解决方案:Rama平台

Rama是一个基于上述原理的端到端后端开发平台,其组件对应于第一性原理:

  • Depots:分布式日志,对应“数据”
  • PStates:分区状态,对应“索引”,可通过任意持久化数据结构组合定义
  • ETL拓扑:对应函数(数据)
  • 查询拓扑:对应函数(索引)

Rama如何解决前述复杂性:

  1. 避免全球可变状态:PStates仅由其所属ETL拓扑写入,状态更易管理;事件溯源确保可从源头重新计算,修复任何损坏。
  2. 消除数据模型限制:PStates用数据结构定义,支持任意模型和用例。
  3. 解决规范化困境:通过分离数据源(Depots)和视图(PStates),内生解决该问题。
  4. 突破模式限制:允许在任何上下文中使用领域原生表示。
  5. 简化部署:作为集成平台,模块化部署、更新和扩展仅需一行命令,内置监控和遥测。

效果与意义

作者以重新实现Mastodon(类似Twitter)为例,展示Rama能将开发成本降低100倍:Twitter花费约200人年实现的功能,Rama仅用9人月和1万行代码完成,且性能相当或更优。

文章总结,软件行业长期困于“点菜模型”的局部最优,Rama代表一种范式转变,能显著降低开发和维护成本,为各种规模的应用带来复杂性降低和成本收益。

12. Rabbit R1, Designed by Teenage Engineering (www.rabbit.tech)

Rabbit R1 设备功能概述

Rabbit R1 是一款集成先进人工智能的设备,由知名工业设计公司 Teenage Engineering 参与设计,主打复古未来主义美学与直观功能。

主要功能:

  1. 无限记录与AI摘要:内置“magic recorder”,可免费提供无限制的录音、文字转录及AI生成摘要,无需订阅。
  2. 即插即用控制器:通过“CTRL + ALT + DLAMDLAM”功能,R1可作为即插即用的控制器,通过语音或文本提示,直接在电脑的操作系统、浏览器和各类应用程序中执行任务,无需额外设置。
  3. 集成OpenClaw智能体:R1是首款支持通过语音提示立即调用第三方实验性智能体OpenClaw执行任务的AI设备。但用户需自行完成OpenClaw网关的设置,Rabbit公司不提供相关支持,且使用风险由用户自行承担。
  4. 个性化创作:支持将想象中的任何工具、游戏或体验,转化为专为用户打造的“vibe-coded”创作。
  5. 免费AI服务:提供基于最新AI模型的即时问答、实时翻译、设备端录音及智能摘要等功能,无额外费用。

设计与合作:设备的工业设计由 Teenage Engineering 操刀,该公司以设计优雅且标志性产品闻名。此次合作基于双方创始人十年的友谊,旨在为消费科技行业带来独特的产品。

重要免责与风险提示

  • 技术本质:设备整合了不断演进的人工智能(包括机器学习)技术。因此,其输出(如答案、服务等)可能不总是准确或真实。
  • 用户责任:用户有责任验证设备输出的准确性与适当性,并运用个人判断,尤其在涉及健康、法律、财务等重大事项时。不可依赖本设备作为任何专业建议的替代品。
  • 医疗用途禁令本设备绝不应用于诊断、预防、治疗或治愈任何健康状况,或任何其他医疗目的。
  • 免责声明:Rabbit 公司明确否认因用户依赖设备任何输出而导致的任何损失或损害的责任。用户使用相关服务与设备的任何输出,风险自担。
  • 第三方服务声明:OpenClaw 是一个高度实验性的第三方智能体,并非由 Rabbit 开发或维护。Rabbit 不控制、运营 OpenClaw,亦不对其性能、可靠性、行为或用户数据安全负责,且不提供相关客户支持。
13. High C Compiler – A C language extension ahead of its time (cohost.org)
14. Samsung forecasts 85% drop in profit as chip sales falter (koreajoongangdaily.joins.com)

三星电子预测2023年全年营业利润同比下降84.9%,为6.5万亿韩元(约合50亿美元),创2008年以来新低,且低于市场预期的7.5万亿韩元。全年销售额预计为258.2万亿韩元,同比下降14.6%,同样低于市场预期。

初步业绩报告未提供详细分类,但证券分析师估计,半导体业务是利润暴跌的主要原因。KB证券分析师Kim Dong-won估算,三星内存芯片业务2023年全年营业亏损合计达15万亿韩元。不过,智能手机、面板制造等业务的盈利帮助公司整体保持了盈利状态。

第四季度单季业绩显示,营业利润同比下降35%至2.8万亿韩元,销售额同比下降4.9%至67万亿韩元。据未来资产证券分析师Kim Young-gun估算,该季度半导体业务录得约2.2万亿韩元的营业亏损,而智能手机与网络设备部门盈利2.5万亿韩元,面板业务盈利1.9万亿韩元,消费电子业务盈利4000亿韩元。

分析师指出,芯片行业的复苏速度慢于预期,因为出货量和价格的改善主要集中在少数高性能半导体上,而电子设备的整体需求仍然疲软。

展望未来,业界和分析师普遍认为行业已于2023年触底,预计2024年将因先进AI领域的强劲需求而反弹。Kim Dong-won预计,三星内存芯片业务2024年将实现14万亿韩元的利润,相比2023年将实现29万亿韩元的业绩改善。市场变化反映出三星在第四季度于减少库存和增加出货量方面取得进展,其DRAM和NAND闪存的比特出货量增长了30%,年末库存水平较年初下降超过50%。三星将于本月底公布最终财报。

15. The Ugliest Airplane: An Appreciation of the Transavia AirTruk (www.smithsonianmag.com)

Transavia AirTruk:世界上最丑陋飞机的欣赏

起源与设计理念

Transavia AirTruk 是外观最奇特的量产飞机之一。它诞生于澳大利亚和新西兰对农业航空(空中施肥/喷洒农药)的实际需求。1950年代,新西兰急需一款专门设计、价格合理的本地制造飞机,以替代老化的旧机型。

意大利飞机设计师路易吉·佩拉里尼(Luigi Pellarini)是其核心设计者。他不受传统约束,设计理念完全围绕任务需求:最大化载荷能力并能在靠近作业点的任何小场地起降。

关键设计特点

  • 整体结构:基于一个大型钢制桶形料斗构建。
  • 机翼与尾翼:采用双翼布局,双尾撑结构取代了传统后机身。这便于卡车在发动机运转时直接驶入尾撑之间为料斗装载,大幅缩短周转时间。
  • 飞行员位置:驾驶舱位于料斗顶部后方,提供了清晰的后下方视野。
  • 载荷灵活性:下机翼下方设有挂架,可用于额外载荷、燃料或空投物资,非常适合偏远地区作业。
  • 动力选择:早期型号使用廉价且广泛供应的英国阿姆斯特朗·西德利“猎豹”径向发动机。

发展历程

  1. PL-7原型(澳大利亚):1956年首飞,性能良好但因资金问题未继续开发,原型机后因火灾损毁。
  2. PL-11 Airtruck(新西兰):佩拉里尼基于相同理念设计,大量采用退役北美“哈佛”教练机的零件。它是新西兰首款本土设计的商用飞机,但因官僚拖延,适航认证耗时三年,错过了市场时机。
  3. PL-12 AirTruk(澳大利亚):佩拉里尼返回澳大利亚后的改进型号。它是一款介于双翼和单翼之间的“翼半式”飞机,使用更经济的美国大陆发动机。驾驶舱位于机身上部顶端,视野极佳。机身内还设有小型客舱,可运送工作团队。
    • 成立公司:1965年,TransAvia 公司成立以生产 PL-12 “AirTruk”。
    • 市场推广:飞机曾飞往亚洲、印度、欧洲和美国进行演示,飞行员对其评价积极,认为其操控反馈良好,具有容错性。
    • 生产与停产:尽管在1985年电影《疯狂的麦克斯3》中亮相,但因未能获得政府支持和打开重要的国际市场,加上美国设计的竞争,生产于1988年停止,总产量约120架。

现状与遗产

  • 稀有与耗损:农用飞机通常使用强度大、寿命短,AirTruk 几乎消失。
  • 现存用途
    • 农业作业:仍有少数(如史蒂芬·德斯运营的两架)用于施肥。
    • 航空表演:因其独特外形,它成为了航空表演的新星。飞行员伊恩·贝尔、史蒂芬·德斯和尼克·威尔斯会以三机编队进行飞行表演,并计划扩展到四机钻石编队。
  • 飞行员评价:尽管外观奇特,飞行操控却相当正统。独特的驾驶舱视野和坚固的起落架使得降落轻松,其坚固的结构也提供了安全性。

总结

Transavia AirTruk 是一款完全由功能驱动、外形突破传统的飞机。它诞生于特定的地理和农业需求背景,虽未在商业上取得巨大成功,但其独特的设计解决了实际作业中的装载效率和操作便利性问题。如今,它已从实用工具转型为航空表演的明星,延续着其不寻常的寿命。

16. Missing the Point of WebAssembly (wingolog.org)

WebAssembly的本质:一种新的基础抽象边界

作者认为,将WebAssembly描述为“类汇编语言”或“虚拟机”虽然正确,却未能抓住其核心价值。真正的要点在于:WebAssembly是一种新的基础抽象边界(fundamental abstraction boundary)。它提供了一种划分计算系统、并将各部分组合成新系统的新方式。

何为基础抽象边界?

作者通过类比来解释:

  • Linux ABI:Linux系统不关心运行的是什么代码,只处理系统调用和进程调度。程序与系统之间的交互通过ABI接口进行,这使得同一程序可以在容器、虚拟机或裸机上运行,而不必关心底层硬件(AMD、Intel或Apple M3)。
  • HTTP:当你访问一个网站时,无需知道服务端是用什么语言编写的。HTTP作为一种极其成功的抽象边界,已成为网络端点的默认协议。
  • C语言ABI(SYS-V):几乎所有编程语言都支持通过 extern C {} 调用外部库,因为C ABI提供了一个稳定、可预测的接口,允许来自不同团队的代码组合成一个整体。

WebAssembly正是在这个空间中的一个新节点。它具备这些抽象边界的一些共同特点:

  • 如同Linux系统调用,它通过导入功能定义接口。
  • 如同C ABI,调用WebAssembly代码的成本可预测且较低。
  • 如同HTTP,模块与宿主之间可以设计为无共享状态。

但它也有独特之处:

  • 与Linux ABI不同,它的导入是命名和类型化的,没有预定义含义,更像C ABI。
  • 与C ABI不同,WebAssembly模块只拥有被赋予的共享状态,任何一方都无权访问整个“进程”的所有内存。
  • 与HTTP不同,WebAssembly模块与宿主是**“同处一室”**的,可以支持同步的函数调用和回调。

应用场景:在边界处寻找价值

理解WebAssembly是一种抽象边界后,就能更好地评估其适用场景。它非常适合在需要组合来自独立团队的工作、或严格限制某部分代码行为的场合使用:

  1. 物联网(IoT)设备:在没有内存管理单元(MMU)的微控制器上运行代码,可以利用WebAssembly提供软件隔离和空中升级能力。
  2. 函数即服务(FaaS)云:运行客户代码以响应API请求时,需要限制其行为。WebAssembly比虚拟机更轻量,比容器控制更精细,比JavaScript更具通用性(例如Fastly Compute, Fermyon Spin)。
  3. 可扩展软件:如GIMP或VS Code的插件系统。过去使用C ABI加载模块或特定脚本语言,WebAssembly可以作为一个更安全、支持多语言(不限于C/Rust)的替代方案。例如,HarfBuzz文本排版库已支持嵌入WebAssembly来控制字体渲染。

作者指出,WebAssembly的价值在于当边界两侧由不同控制方管理时。如果你控制双方,则无需引入此边界。

前沿应用与未来展望

  1. 系统级潜力
    • 已有人将Docker容器“编译”为WebAssembly模块。
    • 理论上可以用WebAssembly替换Linux内核中的eBPF,因为它提供了更优的语言特性和工具链。
    • 甚至可以设想运行WebAssembly操作系统,其运行时管理模块间的边界,优化进程内通信,避免上下文切换。
  2. 在Web中的角色
    • WebAssembly已部署在数十亿用户代理中,但在Web前端并不主流,主要因为线性内存模型与浏览器垃圾回收的DOM API不匹配。
    • 随着托管数据类型(Wasm/GC)的引入,与JavaScript的数据交换将更高效自然。但作者预测,Web应用不会逐步用Wasm/GC“渐进”替换JavaScript,更可能发生阶段性转变——整个Web应用从JavaScript转向由Dart、Elm等语言编译到Wasm/GC。因为Web浏览器内天然的基础抽象边界是用户代理与站点代码之间,而非站点代码内部。

结论

对于编译器工程师,可以继续将WebAssembly描述为虚拟机。但对于其他人,其核心价值在于提供了一种划分系统组件的新方法。通过这一视角,我们可以理解现有应用背后的边界本质,并探索新边界以发掘WebAssembly的潜力。它是一个强大的工具,能让系统通过组合来自不同团队的、受严格约束的组件来扩展能力。

17. GitHub Actions as a time-sharing supercomputer (blog.alexellis.io)

文章总结:GitHub Actions 作为分时超级计算机

本文介绍了 actions-batch 这一开源命令行工具,它通过非官方API将 GitHub Actions 转变为一个“分时超级计算机”,用于提交和执行一次性任务(批处理作业)。

核心概念与灵感来源

  • 分时计算的回归:作者将当下流行的“无服务器”架构比作20世纪70年代的分时计算机,用户提交任务并在未来某个时间获取结果。
  • 与现有方案对比:文章先回顾了AWS Lambda和作者的开源项目 OpenFaaS。OpenFaaS让开发者能将函数封装在容器中,并在Kubernetes上自动伸缩、触发和执行,实现了类似分时计算的功能。但它主要针对需要频繁调用、不同输入的函数型工作负载。
  • actions-batch 的定位:与OpenFaaS不同,actions-batch 专注于一次性、非重复的批处理任务。它接受一个Bash脚本,在完整的虚拟机环境中运行,适合执行系统管理、构建或数据处理等临时性作业。

actions-batch 的工作原理

该工具自动化了以下流程,从而将GitHub Actions变为一个任务提交系统:

  1. 在用户指定的GitHub账户下创建一个临时的新仓库
  2. 生成一个工作流文件,该工作流在收到代码提交时执行指定的 job.sh 脚本。
  3. 用户提供的本地Bash脚本被推送到该仓库作为 job.sh,从而自动触发作业
  4. 作业执行完成后,可以下载产出文件(artifacts),并且临时仓库会自动删除。

关键特性

  • 安全与凭证:支持使用仓库密钥。
  • 灵活性:可使用GitHub托管运行器或用户自托管运行器;支持公开和私有仓库。
  • 功能强大:作业可在完整的VM中运行,支持使用Docker等工具。

应用示例

文章通过多个实例展示了工具的用途:

  1. 编译Linux内核:在Mac上无需本地环境,通过远程托管运行器编译内核并将 vmlinux 文件下载到本地。使用自托管高性能运行器可显著提升速度。
  2. 运行AI/ML推理:利用Llama模型进行本地问答。
  3. 下载YouTube视频:远程下载视频文件到本地目录。
  4. 音频转文字:使用OpenAI的Whisper模型进行转录,支持GPU加速(通过actuated)。
  5. 获取外部IP:从外部网络检查IP地址,用于诊断网络问题。
  6. 远程构建容器镜像:在高带宽远程环境构建Docker镜像,然后将镜像文件(tar包)下载到本地导入使用。
  7. 跨架构构建比赛:同时在x86_64和arm64自托管运行器上构建Linux内核,比较性能。

与其它方案的区别

  • 与OpenFaaS:OpenFaaS函数需容器化,适合高频调用;actions-batch 脚本直接运行,适合单次批处理。
  • 与Kubernetes Jobs:作者另有专门工具 run-job 用于封装Kubernetes Jobs API。

常见问题

  • 合规性:使用应遵守GitHub服务条款,建议使用私有仓库或自托管运行器来避免滥用免费资源。
  • 生产环境:GitHub Actions本身可用于生产,故该工具亦可。
  • 作业时长限制:托管和自托管运行器最长运行时间为6小时。
  • 示例来源:仓库的 examples 目录包含了十余个示例脚本。

总结

actions-batch 是一个创新实验性工具,它巧妙地利用GitHub Actions的基础设施,为一次性计算密集型或环境复杂的任务提供了一个简单、远程的提交与执行平台,让用户无需维护本地复杂环境即可获得远程“超级计算机”的服务。

18. X Purges Prominent Journalists, Leftists with No Explanation (www.vice.com)

X平台无解释暂停著名记者和左翼账户事件

事件概述

2024年1月9日,X平台(前Twitter)在未提供明确解释的情况下,暂停了多位著名记者和左翼评论员的账户。受影响账户的个人资料页面仅显示“X暂停了违反X规则的账户”,并链接到通用的服务条款,但未指明具体违规行为。账户所有者表示未收到来自X的任何沟通或解释。

受影响的账户

  • 记者和评论员:包括德克萨斯州观察家报记者Steven Monacelli、The Intercept的Ken Klippensten、播客主持人Rob Rousseau以及MintPress News的Alan MacLeod。
  • 其他左翼账户:如TrueAnon播客账户和@zei_squirrel(一个发布媒体批评的卡通松鼠账户,更正后澄清该账户通常赞扬Glenn Greenwald,而非批评)。

账户恢复与X的回应

  • 恢复情况:在事件发生数小时后,部分被暂停的账户恢复。但X未解释暂停或恢复的原因。
  • 用户反应:Steven Monacelli尝试联系X但未获回应,仅收到一个有问题的回复。他认为恢复可能与Elon Musk回应极右翼阴谋论者Jackson Hinkle的帖子有关。
  • Elon Musk的声明:Musk在X上回应称,暂停是由于例行的垃圾邮件/诈骗账户清扫,有时真实账户会被错误捕获。他强调批评是允许的,但呼吁极端暴力是非法的,并表示会进行调查。

背景与历史类似事件

  • 2023年4月,X永久暂停了Wired记者Dell Cameron的账户,该记者曾与访问保守派评论员Matt Walsh电子邮件的黑客交谈。
  • 2022年12月,X暂停了十名批评Elon Musk的记者账户。
  • 本文在更新中纠正了错误:@zei_squirrel通常发布赞扬Glenn Greenwald的内容,而非批评。

总结

事件突显了X平台在内容审核和账户管理方面的不透明性,缺乏明确解释引发了用户对政治偏见的质疑。Musk的回应将暂停归因于技术错误,但未提供具体细节。

19. Study Finds Microplastics in Nearly 90% of Proteins Sampled (oceanconservancy.org)

研究发现:近90%的抽检蛋白质样本中含有微塑料

研究概况

由美国海洋保护协会与多伦多大学研究人员主导、发表在《环境污染》期刊上的新研究发现,在针对美国消费者的16种不同蛋白质食品样本中,88%的样本检测出了微塑料颗粒。这些蛋白质来源包括海鲜、猪肉、牛肉、鸡肉、豆腐以及三种不同的植物基肉类替代品。

核心发现

污染普遍存在

  • 微塑料在所有被检测的16种蛋白质类型中均有发现,表明无论选择何种蛋白质来源,人类都可能摄入微塑料。
  • 陆地来源(如牛肉、鸡肉)与海洋来源(如海鲜)的蛋白质样本在微塑料浓度上无统计学差异

加工与污染关联

  • 高度加工的蛋白质产品(如鱼条、鸡块、豆腐、植物基汉堡等)每克中所含的微塑料数量显著高于最低限度加工的产品(如包装野生阿拉斯加鳕鱼、生鸡胸肉等)。
  • 然而,高度加工产品与新鲜捕捞产品之间未发现统计差异,这表明食品加工并非微塑料污染的唯一来源,需进一步研究其他途径。

微塑料特征

  • 在所有样本中,近一半(44%)的已识别微塑料为纤维,这与其他研究显示纤维是环境中最普遍的微塑料形态的结论一致。
  • 约三分之一(30%)的微塑料为塑料碎片

人体摄入量估算

基于另一项相关调查数据,研究人员估算:

  • 一名美国成年人平均每年摄入约11,500个微塑料
  • 若以每种蛋白质类型中测得的最高微塑料含量结合平均蛋白质消费量计算,年摄入量可高达380万个微塑料

研究意义与呼吁

  • 研究作者强调,尽管人们容易想通过“多吃某种食物、少吃某种食物”来避免微塑料,但目前对常见食品中微塑料负荷的了解仍非常有限。
  • 该研究增加了相关知识,但也凸显了进一步研究的必要性,以更全面了解微塑料的来源及对人类健康的潜在风险。
  • 研究人员指出,研究结果是对减少多种形式塑料污染、确保所有消费者获得安全健康食品供应的行动呼吁
20. Aim, fire, scan: the 80/20 of executing on big projects (www.indiehackers.com)

这篇文章介绍了作者如何通过一套系统化的方法,在9个月内成功完成并提交了一部小说。其核心是一个名为“计划-执行-学习”的迭代循环,并将其关键原则概括为三个缩写:AIM、FIRE、SCAN,认为掌握这20%的关键因素能带来80%的成果。

核心方法:计划-执行-学习循环

作者认为成功的关键在于掌握一个简单的迭代循环:计划 (Plan)、执行 (Do)、学习 (Learn)。该循环在不同时间层级(如季度、月、周、日、工作时段)嵌套进行,通过反复迭代来推动项目前进。

关键框架:AIM - FIRE - SCAN

作者将迭代循环的具体操作要点提炼为以下三个框架:

1. AIM:高效规划的80/20法则

  • ABZs框架:专注于三个要素——A(当前状态)B(下一个微小步骤)Z(最终愿景)。避免过度规划从A到Z的所有细节。
  • 定期审视(Interrogate):在每次迭代后,审视原计划是否仍然合理,及时调整或舍弃不再必要的部分,避免浪费精力。
  • 强制交付目标(Mandatory):为每次迭代(如每周或每天)设定一个必须完成的、具体的目标,并承诺达成。即使目标只是投入一定时间,也要确保产出。

2. FIRE:高效执行的80/20法则

  • 优先处理最难任务(Frontload):将最困难、最重要的任务放在精力最充沛时首先完成,以建立短期信心,保障长期进度。
  • 灵活应变(Improvise):执行中遇到障碍时,需运用技巧(如自由写作、向物体解释问题)来突破。应变的重点是改变达成目标B的方法,而非改变目标B本身。
  • 善用外部资源(Resourcefulness):不过度依赖意志力,而是利用技术、工具、环境约束(称为“三个我”)以及老师、团队(称为“两个我们”)等外部资源来增强执行力。
  • 专注时间块(Exhaust):在计划的工作时间内保持高度专注,实现“高效的一小时”。通过设定不受干扰的时间段和使用屏蔽工具来确保执行质量。

3. SCAN:高效学习的80/20法则

  • 量化评估(Score):客观记录并评估关键的投入(如实际工作时间)和产出(是否完成强制交付目标),避免自我欺骗。
  • 识别缺陷(Critique):在每次迭代后,主动寻找至少一个可以改进的执行缺陷。
  • 采取具体调整(Adjust):针对发现的缺陷,制定具体的行动方案来改进,而不仅仅是口头提醒。
  • 记录与反思(Notes):写下每次迭代的过程与心得。记录不仅是为了留底,更是通过写作整理思绪、深化认知的过程。

总结

作者通过这套“计划-执行-学习”的迭代系统,并具体应用AIM、FIRE、SCAN中的方法,最终在几乎没有明确路径的情况下,按时完成了挑战。其核心理念是:通过结构化的循环、聚焦关键行动、保持灵活性和持续反思,能够高效推进任何大型复杂项目。

21. Linux 6.8 Network Optimizations Can Boost TCP Performance by ~40% (www.phoronix.com)

根据提供的网页内容,无法提取到关于Linux 6.8网络优化及TCP性能提升约40%的具体技术细节、实现方法或测试结果。

所提供的材料是一个Cloudflare的安全验证/挑战页面(包含大量JavaScript代码),而非一篇完整的文章正文。因此,无法从中获得优化工作的具体内容、涉及的网络子系统、测试环境或性能数据等实质信息。仅能确认标题所宣称的“性能提升约40%”这一观点,但无法验证或展开说明。

22. Wikihouse: Open-Source Houses (www.wikihouse.cc)

Wikihouse 是一个开源房屋项目。其核心创新在于采用数字化制造的分布式生产模式,而非传统的单一、大型集中工厂。具体而言,WikiHouse 的模块化构件是由一个分布式的小型本地 CNC(计算机数字控制)制造网络生产的。这种分布式制造模式具有多重优势:它更加灵活、更具韧性(例如能更好地应对供应链中断),并且能够支持本地企业与经济发展。该项目鼓励并邀请各方成为其合作伙伴,共同推广这一建造体系。

23. Austerity Is an Antidemocratic Strategy to Boost Capital (catalyst-journal.com)

紧缩政策是一种旨在促进资本利益的反民主策略。它根植于资本主义的内部矛盾:一方面通过压低工资和推动机械化来追逐利润,另一方面却削弱了工人的购买力,侵蚀了企业产品的市场需求。

Clara Mattei在《资本秩序》一书中指出,紧缩政策在一战后成为阶级斗争的关键武器,是资产阶级对当时欧洲工人激进运动的一种政治反应。战时,国家为保障战争所需,全面管控经济,这使人们认识到经济具有深刻的政治属性。战后,工人要求更公平的分配、工会权利和社会保障,这威胁到资本特权,从而催生了系统性的国家紧缩政策,旨在使工人顺从,并将收入与财富从工人向上转移给资本家。

两次战后国际会议(1920年布鲁塞尔会议和1922年热那亚会议)奠定了紧缩政策的框架。其核心信条是:经济增长源于资本家的节俭储蓄和资本积累,而非工人的生产与消费。因此,国家繁荣需要将收入从工人再分配给资本家。这要求抵制工人提高工资、减少工时的诉求,大幅削减医疗、教育等公共服务支出,平衡政府预算,并实行紧缩的货币政策。

紧缩政策包含一个“三位一体”结构:

  1. 财政紧缩:削减针对工人阶级的社会服务和收入支持项目,实施累退税制以增加有产阶级税后收入。
  2. 货币紧缩:在劳动力市场紧张、工资上涨时,限制流动性和信贷,通过国家制造的衰退来压制工人。
  3. 工业紧缩:削弱或废除保护工人利益的法律和制度(如劳动法、工会权利、失业救济),以增强所谓的“劳动力市场灵活性”,核心目标是瓦解有组织的劳工力量。

紧缩政策的实施与民主原则相悖。在英国,经济决策权被转移至不受选举问责的财政部和中央银行。在意大利,法西斯政府则通过法令强制推行,并利用选举舞弊、剥夺公民权、监禁反对派、压制新闻自由和暴力手段来消除抵抗。尽管方式不同,但两国都依赖反民主策略来执行紧缩议程。

技术官僚(专家)在紧缩项目中扮演了关键角色。他们被塑造为无可置疑的科学的守护者,其决策过程脱离了民主控制。从葛兰西的视角看,这种自上而下的知识观念不可避免地服务于当权者的利益。

书中详细考察了一些支持紧缩的经济学家(如Maffeo Pantaleoni, Luigi Einaudi)和官员(如Basil Blackett, Otto Niemeyer)的言论,揭示了其漠视工人痛苦的冷酷态度。然而,作者也承认,主流经济学并非本质反动,部分讨论中的经济学家是在应对前所未有的艰难政策问题,且并非所有被提及者都是僵化的紧缩教条主义者。

总之,Mattei的研究揭示了紧缩政策如何被系统性地用作压制工人阶级、维护资本统治并侵蚀民主的反民主工具,其历史根源可追溯至一战后的欧洲。

25. Ask HN: Those making $500+/month on side projects in 2024 – Show and tell
26. Does DNA have the equivalent of IF-statements, WHILE loops, or function calls? (biology.stackexchange.com)

DNA与程序逻辑结构的类比

DNA本身是一种生物分子,其碱基序列承载着遗传信息,但它并不是像计算机程序那样由明确的、顺序执行的指令构成。然而,从系统生物学和计算生物学的角度来看,基因表达和调控网络中的一些过程,可以与编程语言中的某些控制结构进行类比。这些类比有助于理解,但并非精确对应。

1. 相当于“IF语句”:条件性基因表达

DNA不具备语法上的“IF”判断,但基因的表达受到严格调控,呈现出条件性。

  • 机制:特定基因的启动子区域可被多种蛋白质(如转录因子)结合。当特定的细胞内外信号(如激素、营养状况、应激)出现时,相应的转录因子被激活,结合到DNA上,从而启动或抑制下游基因的转录。
  • 类比:这类似于一个“IF”条件判断。信号(条件)决定了某个基因(指令块)是否会被执行(表达)。例如,乳糖操纵子就是典型的条件表达系统:仅当乳糖存在且葡萄糖缺乏时,相关基因才会表达。

2. 相当于“WHILE循环”:动态维持与重复过程

生物系统中存在受调控的循环过程,但其驱动力是生物化学反馈,而非程序化的循环指令。

  • 机制
    • 细胞周期:这是一个高度受控的“循环”过程,DNA复制和细胞分裂重复进行。其进程由周期蛋白和激酶构成的检查点(Checkpoints)驱动和监控,只有在条件满足时(如DNA复制完成且无损伤)才会推进到下一阶段。
    • 稳态维持(负反馈):许多生化途径通过产物浓度来反馈抑制自身的产生,这类似于一个while循环,持续调节直至达到设定点(稳态)。
  • 类比:这些过程体现了“当某个条件成立时,重复执行一组操作”的逻辑。但生物循环是复杂的物理化学过程网络的结果,而非简单的计数循环。

3. 相当于“函数调用”:基因作为功能模块与层级调控

基因可以被视为具有特定功能的“模块”,其产物能影响其他基因的活动,形成功能层级。

  • 机制
    • 一个基因转录翻译后产生的蛋白质,可能作为转录因子去调控其他一系列基因的表达。这类似于一个函数被调用后,其输出作为参数影响了其他函数。
    • 在发育过程中,主调控基因(如Hox基因)的表达会激活或抑制下游一整套基因网络,从而决定细胞的命运和器官的形态,这呈现出明显的层级性和模块化调用关系。
  • 类比:将一个基因视为一个函数,其DNA序列是“代码”,转录和翻译是“执行”,产生的蛋白质是“返回值”。这些返回值(蛋白质)又可以作为输入,调控其他“函数”(基因)。生物系统是高度并行和网络化的,而非严格的顺序调用。

核心区别

需要强调的是,这些类比是启发性的。DNA和生物系统与计算机程序有根本区别:

  • 无中央处理器:生物过程没有明确的“执行指针”,化学反应是并行、分布式发生的。
  • 本质是物理化学过程:所有“逻辑”都是通过分子的物理相互作用(如结合、构象变化、催化)来实现的。
  • 模糊性与随机性:生物调控存在噪音和概率性,不是精确的布尔逻辑。

总结:虽然DNA序列本身不包含像编程语言那样明确的IF、WHILE或CALL指令,但基因调控网络通过物理化学机制实现了类似的条件执行、循环维持和模块化功能调用。理解这种类比,是系统生物学解读基因组信息的重要视角。

27. SEC has not approved Bitcoin ETFs [fixed] (twitter.com)

美国证券交易委员会(SEC)的官方X账户(原Twitter)被黑客入侵,发布了一条未经授权的帖子。该虚假帖子错误地声称SEC已经批准了比特币现货交易所交易产品(ETFs)的上市与交易。

SEC随后通过其官方账户澄清,明确表示并未批准比特币现货ETFs。此事件凸显了重要官方社交媒体账户面临的安全风险,以及错误信息在金融市场可能引发的混乱。SEC强调,任何关于其监管决定的正式公告都应通过其官方渠道确认。

28. Atuin replaces your existing shell history with a SQLite database (github.com)

Atuin:现代化的Shell历史管理工具

Atuin 是一款用以替代传统shell历史文件的工具,它将命令历史记录存储在一个SQLite数据库中,并提供丰富的附加功能和跨设备同步能力。

核心功能

  • 增强的历史记录:不仅记录命令本身,还记录命令的退出码、执行时长、执行时间、工作目录、主机名和会话信息等上下文。
  • 强大的搜索界面:默认绑定Ctrl-R和上箭头键,提供全屏交互式搜索界面。支持按退出码、时间范围等条件过滤命令(例如:atuin search --exit 0 --after "yesterday 3pm" make)。
  • 数据库存储:使用SQLite数据库存储历史,支持计算统计数据(如“最常用命令”)。
  • 加密同步:可选功能,通过Atuin服务器在不同机器间完全加密地同步历史记录。用户可选择使用官方云服务、自建服务器或不使用同步。
  • 灵活的搜索模式:支持通过Ctrl-R切换搜索范围,可仅搜索当前会话、当前目录的历史或全局历史。
  • 便捷操作Alt-<num>可快速跳转至历史记录中的第N项;在搜索结果上按Enter执行命令,按Tab则进行编辑。

支持的Shell环境

Atuin 支持多种主流shell,包括:

  • zsh
  • bash
  • fish
  • nushell
  • xonsh
  • powershell (二级支持)

安装与设置

快速开始命令将安装Atuin并注册官方云同步服务器(所有数据均端到端加密):

curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
atuin register -u <用户名> -e <邮箱>
atuin import auto
atuin sync

安装后需重启shell。文档中也提供了离线使用、自建服务器以及从旧历史文件导入等详细说明。

安全性

所有同步的历史记录均采用端到端加密,服务器管理员无法访问用户数据。官方鼓励用户报告任何安全问题。

社区与资源

Atuin 拥有活跃的社区,用户可通过官方论坛、IRC频道(#atuin on libera.chat)或Discord获取帮助和支持。项目也欢迎社区贡献,例如相关主题或插件开发。

30. Juniper Networks to Combine with HPE (blogs.juniper.net)

以下是HPE社区论坛部分讨论帖的摘要:

  • Superdome 2 固件不匹配问题:用户 555-denohIntegrity Servers 版块发帖求助,描述其Superdome 2服务器存在固件不匹配问题,并展示了SHOW COMPLEX INFO命令的输出信息。该帖获得了286次浏览和6条回复,表明这是一个受到一定关注的技术问题。

  • Aruba ClearPass Intune 扩展部署问题:用户 Subhojit13Other HPE Product Questions 版块提问,描述了其部署的CPPM(ClearPass Policy Manager)主从架构集成了Entra ID和Intune,并将Intune扩展仅安装在主节点上。当主节点发生故障时,用户认证会失败。该帖获得了5113次浏览和4条回复,显示出社区对高可用部署和集成问题的广泛兴趣。

  • 其他技术讨论:论坛中还列出了其他多个技术讨论帖,其中一个帖子获得了高达7333次浏览和5条回复,显示出较高的社区参与度。这些讨论涵盖了HPE相关的各种技术问题。

31. DeepFlow – open-source eBPF Distributed Tracing (deepflow.io)

DeepFlow – 开源eBPF分布式追踪概览

DeepFlow 是一款开源的、基于 eBPF 技术实现的分布式追踪与可观测性平台,旨在为云原生和AI应用提供即时、零代码的观测能力。

核心特性与优势

  1. 零代码分布式追踪

    • 核心能力:利用 eBPF 技术,实现无需插桩的分布式追踪。
    • 覆盖范围:支持任何编程语言和基础设施,包括网关、服务网格、数据库、消息队列、DNS及网卡,消除观测盲点。
    • 数据采集:自动收集每个 Span 的全栈网络性能指标和文件 I/O 事件。
  2. 持续性能剖析

    • 零代码采集:以低于 1% 的性能开销采集剖析数据。
    • 火焰图生成:生成 OnCPU/OffCPU/GPU/内存/网络等多维度的函数调用栈火焰图。
    • 瓶颈定位:能够定位从应用业务函数、库函数、运行时、共享库到内核函数(包括 CUDA 函数)的全栈性能瓶颈,并自动关联分布式追踪数据。
  3. 与主流观测栈无缝集成

    • 存储后端兼容:可作为 Prometheus、OpenTelemetry、SkyWalking 和 Pyroscope 的存储后端。
    • API 支持:提供 SQL、PromQL 和 OTLP API,作为主流可观测性栈的数据源。
    • 统一元数据:自动为所有观测信号注入统一的元标签(如云资源、K8s 容器/标签/注解、CMDB 业务属性),消除数据孤岛。
  4. 高性能存储设计

    • SmartEncoding 技术:将标准化、预编码的元标签注入所有观测数据,相比 ClickHouse 的 String 或 LowCard 方法,存储开销减少 10 倍
    • 优化的查询体验:自定义标签与观测数据分开存储,支持近乎无限维度和基数的标签,并提供类似 BigTable 的查询性能。

部署与许可

  • 开源许可:采用 Apache 2.0 许可证开源。
  • 快速部署:支持通过 Helm 一键安装:
    helm install deepflow --repo https://deepflowio.github.io/deepflow deepflow
    
32. Linkhut: A Social Bookmarking Site (ln.ht)

网站管理员部署Anubis系统以防御AI公司对网站的恶意抓取,这种抓取行为会导致网站停机,影响所有用户访问资源。Anubis采用基于Hashcash的工作量证明(Proof-of-Work)方案,通过增加抓取成本来遏制大规模抓取,而对个体用户影响微乎其微。这只是一个临时解决方案,未来计划通过指纹识别技术(如字体渲染)来识别无头浏览器,从而避免向合法用户显示验证页面。需要注意的是,Anubis依赖现代JavaScript功能,用户需禁用JShelter等插件以确保正常访问。

33. Potent psychedelic drug banishes PTSD (www.nature.com)

强效迷幻药物伊博格碱显著缓解PTSD

背景与进展

迷幻药物如MDMA和裸盖菇素(psilocybin,一种在魔术蘑菇中发现的致幻化合物)在精神治疗领域展现出革命潜力,可能改变传统的心理疾病治疗方法。

关键试验

一项针对军事退伍军人的小型临床试验表明,另一种强效但相对不知名的迷幻药物——伊博格碱(ibogaine)——可用于治疗创伤性脑损伤(TBI)。试验聚焦于退伍军人的认知和心理问题。

治疗效果

  • 症状改善:在伊博格碱治疗后一个月,参与者报告其TBI相关症状(包括创伤后应激障碍(PTSD)和抑郁)平均减少超过80%。
  • 显著影响:结果显示,伊博格碱对缓解PTSD和抑郁症状具有快速而持久的积极效果。

参考信息

研究结果基于近期发表的学术文献,包括在《自然·医学》(Nature Medicine)上的文章(Cherian等人,2024年),以及其他相关研究(如Alper等人,1999年;Nardou等人,2023年)。这些参考文献支持伊博格碱在神经和精神治疗中的潜力。

35. Why is my LG Washing Machine using 3.6GB of data/day? (twitter.com)

该内容来源于X平台(原Twitter)的一篇推文,用户Johnie表达了对LG智能洗衣机数据使用量异常的困惑。推文内容为:“WTF! Why is my LG Washing Machine using 3.6GB of data/day?”(“搞什么!为什么我的LG洗衣机一天用了3.6GB的数据?”)。这反映了用户对物联网设备(特别是家用电器)在联网状态下产生过高数据流量的疑问和担忧,属于智能家居设备使用中可能遇到的非典型问题。

36. OpenDev is a collaboratory for open source software development at scale (opendev.org)

文章概述
OpenDev 网站使用名为 Anubis 的防护系统,旨在应对大规模AI爬虫导致的服务器过载和资源不可用问题。

核心机制

  • 技术原理:Anubis 采用类似 Hashcash 的工作量证明机制,通过要求客户端完成计算任务来增加大规模爬虫的成本。
  • 设计目标:对普通用户影响可忽略,但对爬虫形成经济和技术门槛。

过渡方案性质

  • 当前机制仅为临时解决方案,未来计划通过浏览器指纹(如字体渲染行为识别)更精准区分合法用户与自动化爬虫,避免向普通用户展示验证页面。

技术要求

  • Anubis 依赖现代 JavaScript 特性,用户需禁用 JShelter 等可能干扰脚本运行的浏览器插件。

总结
该防护系统平衡了安全性与可访问性,通过短期经济手段遏制爬虫,并为后续更精细化的身份验证技术预留升级空间。

37. X Bans and Then Unbans Journalists and Podcasters in Latest Free Speech Massacre (gizmodo.com)

根据标题信息,该事件涉及社交媒体平台X(原Twitter)。

  • 核心事件:X平台在近期进行了一次针对记者和播客主的账号封禁行动,但随后又解除了这些封禁。
  • 事件定性:该事件在报道中被描述为一场针对言论自由的“大屠杀”,暗示这是一次广泛、严厉且引发争议的内容审核或账号管理行为。
  • 关键对象:被封禁及解封的用户群体是记者播客主,这直接引发了关于平台对新闻工作者言论自由影响的讨论。
  • 平台行为:X平台的行为模式被描述为先封禁后解封,显示出其在内容审核或政策执行上的反复性,这可能反映了内部审核机制的不一致或对公众压力的回应。

(注:由于提供的文章内容实际为Cloudflare的安全验证页面,未能获取正文,以上总结完全基于文章标题信息生成。)

39. 24 Hours of Lemons (24hoursoflemons.com)

这篇文章是一个网站安全封锁通知,解释了用户被封锁的原因。网站使用了安全服务来防护在线攻击,用户的某些操作触发了安全解决方案,这些操作可能包括提交特定词句、SQL命令或格式错误的数据。解决方法是用户可以通过电子邮件联系网站所有者,告知被封锁情况,并提供当时的操作描述和页面底部的Cloudflare Ray ID。

40. Mariposa – A programming language with time-travel (github.com)

Mariposa:一种具备时间旅行能力的编程语言

Mariposa 是一个受 Python 启发的小型玩具编程语言,旨在探索程序“时间旅行”的可能性。

核心概念与机制

时间回溯

程序可以通过 now() 函数获取当前时间瞬间,并通过 at t: 代码块返回到该瞬间执行代码,从而改变变量在“过去”的值。

  • 示例:变量 x 初始为1,通过 at t: 将其改为2后,print(x) 最终输出2。
  • 限制:同一时间点不能进行多次时间旅行。

环境捕获与作用域

  • now() 返回的瞬间会捕获当前的环境(包括所有已声明的变量)。
  • at t: 代码块会在捕获的环境中执行,因此可以修改在作用域外声明的变量。
  • at 块内赋值的变量必须是已在捕获环境中声明的变量。

访问与修改父时间帧

语言维护一个时间帧栈。进入 at 块会创建一个嵌套的时间帧。

  • 读取:使用 $ 前缀(如 $y)可以访问父时间帧中的变量值。
  • 写入:使用 $x = expr 可以修改父时间帧中的变量。这通过“脱糖”过程实现。

前往未来

通过巧妙构造,程序可以间接“前往未来”。例如,在过去的某个瞬间 t_past,将一个尚未创建的未来瞬间 t_future 设置为 now(),然后在当前时间编写将在 t_future 执行的代码。

实现思路

解释器基于以下核心概念(尽管实现可能存在缺陷):

  1. 时间线:维护一个所有已知瞬间的总排序。
  2. 内存模型:变量绑定到内存地址。每个内存单元由(地址,瞬间)索引,存储值。值可以是“正确值”(如数字、布尔值)或“不正确值”(一个指向过去某个瞬间的引用 (addr, i))。
  3. 值的解析:当输入/输出或控制流操作需要观察一个“不正确值”时,会进行解析。解析过程是查看该地址在时间 i 之前的所有值,取最近的一个。
  4. I/O 与事件队列:输入/输出操作被注册到事件队列中,仅在程序结束时按时间顺序刷新。解析依赖于读取操作的“不正确值”时,会强制执行所有待处理的 I/O 操作。

时间悖论与限制

时间旅行可能导致逻辑矛盾:

  • 控制流悖论:若代码执行路径依赖于某个变量的值,而时间旅行试图改变该值以改变路径,会导致错误。
  • 自依赖悖论:尝试将变量设置为依赖于其未来值的表达式(如 x = $x + 1)会出错。
  • 允许的结构:使用 $ 操作符可以创建循环数据结构(如无限二叉树)。

高级用法与技巧

  • 未来值技术:结合元组和时间旅行,可以创建一个“未来值”对象 f,其值将在未来某个时刻被设置,并在当前被读取。
  • 时间链式调用:由于同一瞬间不能多次旅行,可以在 at 块内通过 $t = now() 修改父时间帧中的瞬间变量 t,使其指向一个新瞬间,从而实现循环中的多次时间旅行效果。

语言特性(已实现/待实现)

已实现(可能存在错误)

  • 时间旅行原语 (now(), at.., $(...))
  • 基本数据类型(布尔值、整数、字符串、元组、列表)及操作
  • 基本控制流 (if/elif/else, while, for-in)
  • range(n), print, input

待实现或未实现

  • return, break, continue
  • 表达式级别的 at
  • 更丰富的数据类型(字典、集合)
  • 面向对象、模块、异常处理、浮点数、切片、生成器等众多现代语言特性。

语义与正确性

Mariposa 没有形式化的语义规范,因此其“正确性”无从谈起。实现本身被视为一次探索性的实验,作者明确指出它可能不符合任何可想象的语义,并且是低效的。同时幽默地表示“未来不会修复任何 bug(但也许会在过去修复)”。

41. Will US companies hire fewer engineers due to Section 174? (newsletter.pragmaticengineer.com)

美国税法第174条修正案导致科技公司面临意外高额税负,可能抑制工程师招聘。该修正案要求将研发费用(包括软件开发人员工资)资本化并在5年内摊销(海外员工为15年),而非像以往那样当年抵扣。这使得公司账面利润虚增,税负激增。

主要影响:

  • 中小公司受冲击最大:现金流紧张的企业被迫裁员、减少招聘,或申请高息贷款支付税款。例如,一家年收入100万美元、人力成本100万美元的公司,原本利润为零,现在却需对90万美元的“利润”纳税。
  • 大型科技公司也受影响:微软2023年因此多缴税48亿美元,Netflix多缴约3.68亿美元,但对它们而言尚可承受。
  • 软件开发成本分摊规则不合理:与硬件不同,软件需持续更新迭代,一次性资本化摊销不符合实际业务逻辑。
  • 加剧全球竞争力下降:美国可能因此失去科技创业吸引力,公司更倾向于在海外设立研发中心(如瑞士对研发支出提供135%的税收抵扣)。

背景与应对:

  • 该条款源于2017年《减税与就业法案》,原定2022年生效,国会曾预期会延迟或废除,但最终未能撤销。
  • 多个行业联盟(如美国研发联盟、小型软件商业联盟)正游说国会撤销该条款,但尚未达成法律修订。
  • 公司可能采取的应对措施包括:利用研发税收抵免(仅能部分抵消)、将知识产权转移到海外子公司、通过并购改变公司属地,或减少自研转向购买SaaS服务。

结论: 第174条修正案若持续生效,将削弱美国软件行业的创新能力与全球竞争力,尤其对初创公司和中小企业造成严重打击,同时可能促使工程岗位向海外转移。目前业界正推动立法修复,但进展缓慢。

42. SSH-Snake: Automatic traversal of networks using SSH private keys (joshua.hu)

SSH-Snake:利用SSH私钥自动遍历网络的工具

SSH-Snake 是一个用 Bash 编写的工具,其核心功能是在网络中自动传播,利用已发现的 SSH 私钥进行递归式的横向移动。

核心功能

该工具执行三个递归循环的基本任务:

  1. 发现私钥:在当前系统上查找所有 SSH 私钥文件。
  2. 发现目标:基于找到的私钥,确定可能接受这些密钥进行认证的目标主机(格式为 user@host)。
  3. 尝试连接:使用所有发现的私钥,尝试通过 SSH 连接到所有发现的目标。 一旦成功连接到新系统,该工具会在新系统上重复以上三个步骤,形成自我复制和传播的链式反应,直到无法发现新的密钥或目标为止。

关键技术特性

  1. 完全无文件执行:工具通过精心设计的 Bash 技巧(如脚本自传递、bash -sssh 命令结合)实现远程执行,无需在目标服务器上传任何文件。
  2. 模块化与可配置:工具采用插件式设计,发现私钥和目标的各种策略(如从 bash_historyssh_configknown_hosts、ARP 缓存等提取信息)均可单独启用或禁用。
  3. 高效的递归与避免循环
    • 主机链追踪:记录完整的 SSH 路径(如 user1@host1[key1]->user2@host2[key2])。
    • 忽略列表:使用列表记录已扫描或正在扫描的主机,防止递归扫描造成无限循环。扫描完成的主机会通过特殊消息(INTERNAL_MSG: ignore list: ...)向链路上的其他节点传递状态。
    • 主机名解析去重:在尝试连接前,会解析主机名对应的 IP 地址,避免对指向同一 IP 的不同主机名进行重复扫描。
  4. 性能优化
    • 缓存:大量使用关联数组缓存已检查的文件路径、文件内容、主机解析结果等,减少重复的系统调用和 I/O 操作。
    • 最小化代码传输:初始脚本较大,为了适应 SSH 命令行参数长度限制,在首次执行时会通过 awksed 移除未使用的函数、注释和空白字符,生成一个精简的“本地脚本”再进行执行和传输。
  5. 详尽的信息发现
    • Bash 历史记录分析:能够复杂解析 sshscprsync 命令,从中提取用户名、主机、密钥文件路径等信息。
    • 已知主机破解:对于 known_hosts 文件中哈希化的主机名,会尝试使用系统已知的主机、以及对当前系统 IP 的 C、D 类地址进行暴力破解来恢复主机名。
  6. 输出与可视化
    • 输出以树形缩进格式显示扫描路径和发现的目标,明确展示连接链。
    • 工具生成的关系数据可用于可视化软件(如 Graphviz、Gephi、Cytoscape),以图形方式展示网络中主机之间的 SSH 连接关系,便于分析网络拓扑。

总结

SSH-Snake 是一个自动化、递归式的网络遍历工具,专门用于利用泄露或配置不当的 SSH 密钥进行横向移动。其主要特点包括:基于 Bash 的无文件化执行、模块化的信息收集策略、高效的递归控制机制以及对扫描路径和网络关系的详细记录与可视化输出,适用于安全研究人员评估 SSH 密钥管理风险。

43. Converting the Kernel to C++ (lore.kernel.org)

Anubis 网站保护机制说明

  • 目的:网站管理员设置 Anubis 以抵御 AI 公司对网站的恶意抓取行为,这种抓取可能导致网站资源无法访问。
  • 工作原理:Anubis 采用类似 Hashcash 的工作证明方案。在个体层面,额外负载可忽略;但在大规模抓取时,会增加成本和难度,从而减少抓取活动。
  • 临时方案:这是一个临时解决方案,旨在为网站提供更多时间来开发和优化无头浏览器(如通过字体渲染特征)的指纹识别和识别技术,避免向合法用户显示工作证明页面。
  • 技术要求:Anubis 依赖现代 JavaScript 功能,用户需禁用 JShelter 等可能干扰脚本运行的浏览器插件,以确保正常访问。
44. Error handling in Go web apps shouldn't be so awkward (boldlygo.tech)

文章探讨了Go Web应用中错误处理的传统问题,并提出了一种更优雅、更符合Go语言习惯的模式。主要观点总结如下:

传统错误处理的问题 传统的http.HandlerFunc函数签名不返回错误,导致开发者必须:

  1. 处理方式重复且不地道:无法使用Go惯用的 if err != nil { return err } 模式,而是在每个错误分支中都要手动渲染错误并返回。
  2. HTTP状态码处理繁琐:需要为每个错误场景显式设置HTTP状态码,缺乏DRY(Don‘t Repeat Yourself)原则,容易出错。
  3. 逻辑耦合:业务逻辑(如HTTP处理函数)需要了解数据库或其他底层实现的细节(如sql.ErrNoRows),导致紧耦合。

提出的优雅模式 作者提出了一种基于自定义错误类型的模式,旨在实现:

  1. 地道的错误处理:允许处理函数直接 return err
  2. 自动化的状态码映射:错误能自动关联到正确的HTTP状态码(如400、404、500)。
  3. 业务与表示层解耦:数据访问层返回的错误可以携带状态信息,无需处理函数知晓具体技术细节。

模式的核心实现

  1. 支持错误返回的处理函数
    • 通过一个适配器函数(如customHandler)包装错误返回函数,将其转换为标准的http.HandlerFunc
    • 或者使用扩展库(如作者实验的httpe)获得对中间件的更好支持。
  2. 自定义错误类型
    • 定义一个扩展了error接口的结构体(如statusError),包含原始错误和HTTP状态码字段。
    • 实现Unwrap()方法以支持错误链检查。
    • 实现一个方法(如HTTPStatus() int)来暴露状态码。
  3. 状态码提取与默认值
    • 在适配器或中间件中,使用errors.As来检查错误是否包含自定义状态码接口,并提取状态。
    • 提供辅助函数(如apperr.HTTPStatus),对于未携带状态码的错误,可以返回一个默认值(通常为500)。
  4. 构造函数与代码组织
    • 将自定义错误类型及其构造函数(如WithHTTPStatus)移至独立包(如apperr),以提高可复用性和解耦。

模式的优势与扩展

  1. 中间件集成:此模式非常适合与中间件结合,实现:
    • 日志记录中间件:统一记录请求成功或失败(含错误)的日志。
    • 错误响应中间件:集中处理错误到HTTP响应的转换。
    • 恐慌恢复中间件:将panic转换为错误,通过错误通道处理。
  2. 领域特定错误码:鼓励定义应用程序内部的领域错误码(如ErrWidgetNotFound),并让这些错误码能映射到相应的HTTP状态码,提供更精细的错误控制。
  3. 其他改进潜力
    • 在错误中包含堆栈跟踪等元数据。
    • 根据HTTP状态码对客户端隐藏或美化错误信息(如对500错误仅显示“Internal Server Error”)。
    • 使用验证库以统一方式返回400错误。

注意事项与局限

  1. 非标准方式:需要适配层,在生态中并非主流(尽管许多框架提供了类似功能)。
  2. 响应设置方式的二元性:仍然可以通过w.WriteHeader()Write()直接设置响应状态和体,与通过返回错误设置的方式并存,需要注意其优先级。
  3. 行为的隐式性:默认状态码等“魔法”行为可能让不熟悉该模式的人感到困惑。
  4. 功能限制
    • 不适用于设置非错误的非200状态码(如201 Created),此时仍需直接调用w.WriteHeader
    • 对于同时返回响应体和错误的函数签名(如func (*http.Request) (any, error))不直接适用。

结论 该模式通过自定义错误类型和适配器/中间件,显著简化了Go Web应用中的错误处理流程,使其更地道、更解耦、更易维护。它为实现更高级的错误处理特性(如统一日志、领域错误码)奠定了坚实基础,虽然存在一些非标准的代价和限制,但在许多应用场景下被视为一种优雅的解决方案。

45. 'Magical' Error Correction Scheme Proved Inherently Inefficient (www.quantamagazine.org)

本文讨论了纠错码领域的一项重大突破,重点介绍了“局部可纠正码”的固有低效性已被证明。

纠错码是数字通信和存储的基石,其原理是将原始数据转换为冗余形式,以便在数据出现错误时能够恢复。早期的简单方案如重复码(例如将每个比特重复三次)虽然具有局部查询的特性,但非常脆弱,容易遭受针对性破坏。

一种强大且高效的方案是里德-所罗门码。它通过将消息编码为多项式曲线上的点来实现高效率和强健性,因为纠错所需的信息分散在整个编码中。但这种高度互联的特性也意味着,纠正一个错误通常需要读取和计算整个编码数据。

这引出了“局部可纠正码”的概念,它结合了看似矛盾的优势:纠正任何单个错误只需查询编码数据的极少数位置(局部性),同时又保持了类似里德-所罗门码的强健性,使攻击者无法通过局部篡改来破坏纠错过程。这种码在云存储等场景中极具价值,例如服务器崩溃时,无需检索全部数据即可恢复丢失信息。

然而,已知的局部可纠正码例子效率极低,会导致编码后的消息长度呈指数级增长,这限制了其实际应用。多年来,研究人员一直探寻是否存在高效的局部可纠正码,特别是仅需“三次查询”即可纠错的版本。

计算机科学家普拉维什·科塔里与其学生彼得·马诺哈尔最终证明:任何仅使用三次查询的局部可纠正码,都无法避免编码长度指数级增长的代价。虽然这是一个负面结果,但它明确了此类代码的根本局限性,被学界视为一项重大突破。这一发现澄清了纠错理论的边界,其相关的数学结构也出现在通信之外的其他领域。

46. Vcc – The Vulkan Clang Compiler (shady-gang.github.io)

Vcc – Vulkan Clang 编译器简介

Vcc 是一个概念验证的 C 和 C++ 编译器,专为 Vulkan 设计,使用 Clang 作为前端,配合自研的研究 IR 和编译器 Shady。与其他着色语言(如 HLSL 或 GLSL)不同,Vcc 旨在严格遵循标准 C/C++ 语言,仅通过添加少量新内在函数来覆盖 GPU 特性,类似于 CUDA 或 Metal,旨在将标准主机语言的优势引入 Vulkan 着色器。

关键特性

Vcc 支持通常在着色语言中被忽略的高级 C/C++ 特性,特别是在指针支持和控制流方面提升了能力:

  • 无限制指针:允许算术操作,可与整数相互进行位转换。
  • 通用指针:指针类型不包含地址空间,而是将地址空间作为标签携带在高位。
  • 真正函数调用:支持递归等特性,通过实现堆栈来处理一般情况。
  • 函数指针:允许在 GPU 上以函数式风格编写代码,无限制。
  • 任意 goto 语句:代码无需严格结构化,提供了更大的灵活性。

这些功能在计算 API 中存在,但在大多数图形 API(如 DirectX 或 Vulkan)中不受支持。Vcc 旨在证明这些特性可以且应该被实现,以弥补这一差距。

当前状态与注意事项

Vcc 仍处于开发阶段。虽然承诺确保上述所有特性可靠工作,并努力将整个 C 和 C++ 引入 GPU 而不进行子集化,但目前存在以下限制:

  • 某些函数(如 malloc/free)需要与宿主内核通信,目前尚未实现。
  • 非头文件库(包括 C 和 C++ 标准库的部分)由于 Vcc 的工作方式,在 GPU 上无法工作,除非进行额外开发,但这会大幅增加项目范围。目前,最好将 Vcc 视为仅支持 -ffreestanding 方言的 C/C++。
  • 不支持 C++ 异常及其对应的 LLVM 指令(如 landingpad)。
  • 函数和数据指针在宿主和设备之间不可移植;取地址并在任一方向传递属于未定义行为,这是由于 Vulkan 缺乏统一寻址扩展而无法解决的限制。

示例代码

文章提供了一个示例代码片段,展示了如何使用 Vcc 编写着色器代码,包括描述符集、输入输出声明等,以实际应用形式体现了其功能。

47. "I Contribute to the Windows Kernel. We Are Slower" (2013) (blog.zorinaq.com)

这篇2013年的文章由一名自称参与Windows内核开发的匿名微软员工撰写,核心观点是Windows内核性能落后于Linux,且差距正在扩大,其根本原因在于公司的文化和社会性问题,而非纯技术因素。

原文作者的核心批评

  1. 缺乏改进的激情:微软内部缺乏为“荣耀”而优化的自驱动文化,改进工作被视为“西西弗斯式的苦役”,缺乏资源和管理层支持。
  2. 管理导向问题:管理层主要关注企业客户投诉等短期、明显的问题,而非根本性的性能优化。性能不足不被视为生存威胁。
  3. 官僚与政治阻碍:内部存在严重的“非此处发明”综合征,团队各自为政,跨团队改进即使技术上可行,也会因缺乏激励和政治阻力而难以推进。
  4. 人才与知识断层:资深工程师被替换为缺乏经验的毕业生,导致宝贵的系统知识流失。一些新员工被描述为“朝九晚五、有孩子”的类型,可能被理解为缺乏热情。
  5. 具体技术债:作者提及NTFS等关键组件的代码库非常陈旧、混乱且难以维护。

评论区的主要反应与讨论

评论区对原文展开了激烈辩论,主要围绕以下几个方面:

  • 对“朝九晚五”言论的争议:有评论者认为该表述冒犯,强调健康工作生活平衡的重要性。另一些人则辩护说,其指的是那些以家庭为借口、只做最低限度工作、缺乏激情的员工。
  • 对公司文化的共鸣:许多评论者认同这是大型科技公司(如微软)的普遍通病:官僚主义、创新受阻、技术债累积。
  • 开源与闭源的对比:多位评论者指出,Linux等开源项目的社区驱动模式更有利于持续改进和高质量代码,而微软的闭源模式和商业导向则导致了停滞。
  • 对微软未来的预测:部分评论当时预测微软将迅速衰落,被Linux等取代。然而多年后的发展证明这些预测过于悲观,微软在云服务(Azure)等领域重新找到了增长点。
  • 对后续回应的怀疑:原文作者发布了一个更克制的“后续说明”,但一些评论者怀疑这是公司公关施压或他人代笔的结果,并非本意。

核心结论与影响

文章及其讨论揭示了大型软件公司内部普遍存在的挑战:商业短期压力与长期技术优化之间的矛盾,以及闭源开发模式在维持创新活力和代码质量上面临的内在困难。尽管微软并未如一些人预言的那样迅速衰落,但文中所描述的文化问题——如何平衡稳定性与创新、如何在庞大规模下保持敏捷——仍是其(及其他大型科技公司)持续需要面对的课题。

48. Ancient Stars Made Extraordinarily Heavy Elements (2023) (news.ncsu.edu)

一项国际研究团队发现,古代恒星能够产生原子质量超过260的元素,这比地球上自然存在的任何元素都要重。该发现深化了我们对恒星中元素形成机制的理解。

最重的元素已知仅通过**快速中子捕获过程(r-过程)**在中子星(如中子星诞生、死亡或碰撞时)中产生。该过程需要在极短时间(通常小于一秒)内,将大量中子附着到原子核上,从而形成如金、铂、铀等重元素。这些最重的元素不稳定,会通过核裂变等方式衰变。

为探索r-过程的极限,研究团队重新分析了银河系42颗富含r-过程元素的古老恒星的元素丰度数据。他们采用了创新方法,整体审视这些恒星的元素含量模式,而非逐一分析。这使他们识别出此前未被注意的规律。

这些规律显示,元素周期表中部的一些元素(如银和铑)的丰度,与更重元素(原子序数63-78,质量数>150)的丰度存在相关性,而与邻近元素则无此关联。研究人员将此解释为原子质量数大于260的超铀核素发生裂变后产生碎片的证据。这意味着r-过程能够产生质量数至少为260的富中子原子核,随后它们会发生裂变。

论文第一作者、北卡罗来纳州立大学的Ian Roederer指出,原子质量260是一个重要的阈值,此前从未在太空或地球自然界(包括核武器试验)中检测到如此重的元素。这一发现为相关理论模型和裂变研究提供了指导,并有助于揭示元素多样性的起源。

该研究发表于《科学》期刊,得到了美国国家科学基金会和美国国家航空航天局的部分资助。

49. Discord Serves 15M Users on One Server (blog.bytebytego.com)

本文讲述了Discord如何通过技术优化,成功将单个服务器(“公会”)的用户容量从约100万提升至1500万,以容纳MidJourney社区的爆发性增长。

背景与挑战

  • Discord是一个流行的实时聊天应用,其后端由运行在BEAM虚拟机上的Elixir语言构建,BEAM擅长处理高并发轻量级进程。
  • 内部结构上,每个社区是一个“公会”,由一个专门的Elixir进程(“公会进程”)负责协调和路由消息给所有在线用户的会话进程。
  • 随着用户数增加,公会进程的负载呈指数级增长,因此团队此前认为100万在线用户是单个公会的物理极限。
  • MidJourney社区的快速增长迅速逼近此极限,Discord面临失去该重要社区的风险。

优化过程与关键措施 为解决危机,Discord组建了名为“MaxJourney”的工程师团队,通过系统化分析和优化,将容量提升了15倍。核心措施包括:

  1. 性能分析与瓶颈定位

    • 使用堆栈采样、事件循环插桩等技术,精确识别耗时操作和高内存消耗的数据结构。
    • 基于分析结果,优先针对最影响性能的代码进行优化。
  2. 减少被动工作量

    • 实施“被动连接”机制:对于用户未在前台激活查看的公会,跳过消息处理和数据传输。
    • 该措施使大型服务器中超过90%的用户-公会连接变为被动状态,将工作量减少了90%。
  3. 优化Relay(中继)系统

    • Relay用于将消息分发任务分摊到多个BEAM进程。原实现会为每个Relay复制完整的成员列表,消耗大量内存且初始化缓慢。
    • 优化后,每个Relay仅跟踪其服务的那部分用户所需的最小子集信息,大幅减少内存占用和启动时间。
  4. 异步处理与内存管理

    • 将耗时的阻塞操作(如成员迭代、状态迁移)移交给后台“工作进程”异步执行。
    • 引入ETS(Erlang内置内存数据库)存储成员数据,实现进程间快速数据共享,同时保持公会进程内存精简。
    • 将消息“扇出”(fanout)任务分离到独立的“发送器”进程,以进一步隔离公会进程与网络背压。
  5. 解决次生问题

    • 在分离扇出任务时遇到了因垃圾回收导致的性能下降问题,通过调整BEAM虚拟机的二进制堆参数得以解决。

结果与意义 通过上述一系列创造性优化,Discord成功将单个公会的在线用户容量从约100万提升至1500万,确保了MidJourney这一快速增长的AI社区能够继续在平台上繁荣发展,展示了其基础设施的弹性与团队的工程能力。

50. How I pwned half of America's fast food chains, simultaneously (mrbruh.com)

文章摘要:美国半数快餐连锁店数据泄露事件

漏洞发现背景

作者通过扫描数百家近期注册的.ai域名网站,寻找暴露的Firebase凭证。脚本解析网站数据及关联的JavaScript文件中的Firebase初始化变量。Chattr.ai(一个自称能提升招聘效率88%的AI招聘系统)被发现存在配置错误,其服务覆盖多家美国快餐连锁店及雇主。

受影响企业范围

包括但不限于:

  • Applebee's、Arby's、Chick-fil-A、Dunkin'、IHOP、KFC、Shoney's、Subway、Taco Bell、Target、Wendy's。

漏洞详情

  • 配置错误:Chattr.ai的Firebase配置信息直接暴露在前端代码中。
  • 权限提升:使用Firebase注册功能创建新用户后,攻击者可获得数据库的完整读写权限。
  • 暴露数据
    • 员工、加盟商经理、求职者的姓名、电话、邮箱、部分明文密码。
    • 门店位置、机密信息、排班数据。

漏洞时间线(日/月)

  • 06/01:漏洞发现。
  • 09/01:完成漏洞报告并通过邮件通知对方。
  • 10/01:漏洞修复。
  • 11/01:支持工单关闭,作者未收到感谢或后续回复。

致谢

作者感谢协助渗透测试和负责任披露的朋友:Logykk和Eva(其博客链接已提供)。