2024-08-29

50 篇热帖

1. Air Con: $1697 for an on/off switch (blog.hopefullyuseful.com)

文章讲述了作者因Advantage Air空调控制平板故障,面临高昂更换费用,通过自行修改软件解决问题的经历。

作者2019年安装的Daikin空调系统使用Advantage Air控制盒和POE供电Android平板。2024年8月,平板在保修期外崩溃,无法启动。联系Advantage Air客服后,被告知需更换整个控制系统,费用从1245美元升至1697美元(包括无线温度传感器),尽管其他硬件均正常。

作者决定自行修复。拆解平板发现隐藏USB端口,但原设备无法识别。调查发现POE连接器非常规,有三根线连接USB数据线和电源。切断数据线后,设备可被计算机识别,但原平板存储可能损坏,无法恢复。

作者尝试用旧Samsung Galaxy Tab 4替代。安装Advantage Air的e-zone应用后,应用检查设备型号,显示“Not on AA Hardware”错误并退出。作者使用apktool反编译应用,在Java代码中找到设备型号检查函数(通过Build.MODEL)。通过修改smali代码,将函数返回值改为原平板型号“PIC7KS6-EZ”,绕过硬件限制。

重新编译、签名APK后,应用成功运行,空调系统恢复正常。旧平板性能优于原设备,且可通过USB连接升级。作者强调这仅需POE连接器和基本焊接技能。

后续讨论中,有用户指出可通过root平板并更改Build.MODEL解决,且社区已创建GitHub项目(https://github.com/gundy/aa_interop)文档化硬件、协议和API。

2. Bypassing airport security via SQL injection (ian.sh)

摘要:

本文记录了安全研究员Sam Curry和Ian Carroll于2024年发现并报告的一个重大安全漏洞。该漏洞存在于美国运输安全管理局(TSA)的“已知机组成员”(KCM)和“驾驶舱访问安全系统”(CASS)项目的一个关键环节中,攻击者可通过SQL注入完全绕过机场安检并获取商业航班驾驶舱的访问权限。

  • 背景与系统:KCM项目允许飞行员和乘务员通过专用通道免于安检。CASS系统则用于验证搭乘驾驶舱折叠座椅的飞行员身份。两个系统的核心流程是:通过中央枢纽ARINC将授权请求(包含员工信息)路由至各航空公司自行维护的系统进行身份和雇佣状态核验。核验通过后,会返回授权人员的照片以进行比对。
  • 漏洞发现:研究人员发现,为小型航空公司提供KCM/CASS服务的第三方网站 FlyCASS 存在严重的SQL注入漏洞。在登录页面用户名字段输入单引号即可触发MySQL错误。利用sqlmap工具和特定的注入载荷,他们成功以管理员身份登录了“Air Transport International(8C)”航空公司的账户。
  • 漏洞利用与影响:获得管理员权限后,研究人员可直接在FlyCASS系统中为该航空公司添加任意新员工(包括姓名和照片),并授权其使用KCM和CASS。这意味着:
    1. 任何具备基本SQL注入技能的人都可以添加自己或任意人员为“授权机组”。
    2. 该新增人员随后便能通过KCM通道完全绕过机场安检
    3. 该人员也能通过CASS系统获得商业航班驾驶舱的访问权限。 研究人员成功添加了一个测试用户,并验证其已同时获得了KCM和CASS的授权。
  • 漏洞披露与后续
    1. 研究人员于2024年4月23日首先向ARINC和FAA披露。
    2. 4月24日通过CISA向国土安全部(DHS)报告。
    3. DHS确认严重性,并于5月7日将FlyCASS从KCM/CASS系统中断开,漏洞随后被修复。
    4. 然而,在协调公开披露时,DHS停止回应。TSA新闻办公室发表声明,错误地声称该漏洞无法用于访问KCM检查点,理由是TSA会对新成员进行背景审查才发放KCM条形码。
    5. 研究人员指出,使用KCM通道并不强制需要条形码,运输安全官员(TSO)可以手动输入员工ID。在研究人员指出这一点后,TSA删除了其网站上提及手动输入ID的内容,但拒绝进一步沟通。研究人员确认TSO使用的界面仍然允许手动输入。
    6. 文章还指出,由于漏洞允许编辑现有成员信息(如更改照片和姓名),也可能绕过对新成员的审查流程。
  • 结论:该事件揭示了关键国家安防基础设施中一个因第三方服务引入的严重安全缺陷。尽管漏洞最终被修复,但官方在漏洞沟通和公众知情方面的处理引发了担忧。

关键时间线

  • 2024/04/23:向ARINC和FAA首次披露。
  • 2024/04/24:通过CISA向DHS报告。
  • 2024/05/07:DHS确认FlyCASS已从KCM/CASS系统断开。
  • 2024/05/17 & 06/04:研究人员再次联系DHS询问TSA的错误声明,未获回复。
3. Low Cost Mini PCs (lowcostminipcs.com)

该网站是一个专注于低价迷你电脑的优惠信息聚合平台,其核心内容和特点如下:

  • 网站性质LowCostMiniPCs.com 是一个产品导购网站,其展示的所有商品均来自 eBay 市场。
  • 核心功能:网站的核心功能是策展和展示来自eBay的迷你电脑优惠信息。所有产品列表中的价格和库存状态均为实时更新,直接从eBay的市场数据中获取。
  • 盈利模式:网站通过联盟营销盈利。它同时是 eBay Partner NetworkAmazon Associate 的成员。当用户点击标注有“‡”的联盟链接并完成购买后,网站会获得佣金,此过程对用户无额外费用
  • 示例产品:网站首页突出了一个具体的示例产品——联想ThinkCentre M600,配置为 Intel Celeron 处理器、4GB RAM、128GB SSD 并预装 Windows 11 Pro,该产品被标为网站上的最畅销商品
4. Judges rule Big Tech's free ride on Section 230 is over (www.thebignewsletter.com)

第三巡回法院判决限制科技公司滥用《通信规范法》第230条免责保护

案件背景与核心裁决

  • 案件起因:TikTok算法向10岁女孩Nylah Anderson推荐了“窒息挑战”视频,女孩模仿后意外身亡。其母亲提起诉讼,指控TikTok的产品责任、过失和非正常死亡。
  • 法院裁决:美国第三巡回上诉法院裁定,TikTok的算法推荐行为属于平台自身的“表达性产品”,而非仅仅是托管第三方内容,因此不能依据第230条免责。
  • 判决意义:此裁决打破了数十年来的先例,首次明确将算法推荐视为平台自身的言论,要求平台对其推荐内容承担责任。

第230条的历史与滥用

  • 立法初衷:1996年通过的第230条旨在保护早期互联网平台(如论坛、聊天室)免于为用户发布的内容承担法律责任,同时允许平台进行内容管理。
  • 滥用扩大:随着互联网发展,法院将第230条保护扩展至几乎所有在线平台,包括社交媒体、电子商务和广告业务,使科技公司几乎无需为任何用户内容或算法推荐引发的伤害负责。
  • 商业模式影响:这种免责保护支撑了科技公司的“定向广告”商业模式,允许它们通过算法最大化用户参与度,而无需承担内容危害的成本。

判决的法律逻辑与创新

  • 引用最高法院先例:法院引用了近期“Moody诉NetChoice案”中最高法院的观点,即平台通过算法策划内容时受第一修正案保护。
  • 逻辑反转:第三巡回法院指出,如果算法策划受言论自由保护,那么它也属于平台自身的“言论”,因此应承担第230条下的责任。
  • 区分“发布者”与“分销商”:法官Paul Matey在协同意见中进一步区分了“发布者责任”和“分销商责任”,认为TikTok更像分销商(如书店、报摊),应对其分发的内容承担注意义务,这回归了互联网前的普通法传统。

社会危害与行业反应

  • 现实危害:第230条的广泛保护已导致平台成为诈骗、身份盗窃、仇恨言论和儿童虐待等内容的温床,而科技公司无需为此负责。
  • 行业震动:法律学者称此裁决“巨大”,可能迫使科技公司重新评估商业模式,并面临更多诉讼。
  • 超党派共识:此问题并非纯粹党派之争,保守派与自由派法官、监管者均对第230条滥用表示担忧,特朗普和拜登政府也批评该法律。

未来展望与潜在影响

  • 上诉与最高法院:此案很可能上诉至最高法院,此前最高法院已对第230条改革表达兴趣,但尚未作出明确裁决。
  • 立法博弈:科技公司可能推动国会“改革”第230条,以维护现有商业模式;同时,原告律师将利用此判决发起新诉讼。
  • 商业模式调整:若判决生效,科技公司可能被迫增加内容审核投入,或调整算法推荐策略以避免法律责任。
  • 长期意义:此裁决标志着科技公司“免费搭车”时代的可能终结,推动社会重新审视平台责任与公共利益之间的平衡。
5. Chrome is entrenching third-party cookies that will mislead users (brave.com)
6. Show HN: Homemade automated solar concentrator (github.com)

项目概述

这是一个自制自动化太阳能聚光器项目。其核心组件包括:

  • 可定向镜面板:目前由48块聚光镜组成,总面积1平方米。
  • 固定目标:一个简易混凝土烤箱,配有黑色金属板和钢化玻璃。
  • 监控单元:电子控制装置,用于测量目标、计算并发送指令给电机。

在2024年6月26日的一次测试中,通过在烤箱内添加铝箔改善保温后,30分钟内温度达到了210°C。2024年7月8日的视频展示了其组装过程(10倍速)和长达约7小时的自动太阳追踪(600倍速)。

⚠️ 安全警告

本项目可能对周围的人或动物造成伤害。 可能导致永久性失明、皮肤灼伤或物体起火。即使聚光器未通电,太阳光仍会被聚焦48倍于一个小区域,该焦点会持续且难以预测地移动。在当前状态下,必须持续监控,并在出现异常时迅速遮盖镜面。

关键特点

  • 高效能:可产生约1000瓦热功率,仅消耗3.8瓦电功率。
  • 低成本与易获取:仅使用标准、廉价且易得的组件和材料。
  • 低精度要求:无需高精度建造,可用常见工具手工完成。
  • 模块化设计:易于组装、拆卸、理解和修改。
  • 开源:项目完全开源。

当前版本局限

  • 未实现安全层(见上文警告)。
  • 自动追踪前需手动初步调整面板方向。
  • 仅支持控制单个面板。
  • 阴天无法工作。
  • 通过实现低功耗模式可显著降低功耗。

资源利用:项目“巧妙地”将一些产品改造用于原始用途之外,例如烤箱的钢化玻璃来自宜家货架,镜子是装饰性浴室镜,电机是廉价的模型发动机。

技术分解

项目结构清晰,分为以下子模块:

  • 机械部分:太阳能面板部件的3D模型。
  • 电子部分:定制监控板的原理图和布局。
  • 软件部分
    • 模拟器:评估特定硬件配置下目标接收的理论功率。
    • 监控控制器:基于Espressif ESP32框架的ESP32-CAM固件,包含监控逻辑、太阳追踪、目标检测、Web交互界面、电机控制及图像处理等功能。
    • 电机控制器:用于控制电机的Arduino Pro Mini固件。

下一步计划

下一步目标是控制多个面板,以实现数千瓦的功率输出。这将开启以下应用可能性:

  • 快速煮沸大量液体。
  • 海水淡化或水消毒。
  • 食物烹饪或消毒。
  • 熔化塑料、金属或玻璃。
  • 通过聚光光伏技术提升光伏面板输出。

许可证

  • 版权所有:Rémi Peuchot (2024)。
  • 软件:采用GNU GPL v3许可证。
  • 硬件设计(电子与机械):采用CERN开放硬件许可证v2强互惠许可。
7. HDMI Forum rejects AMD's HDMI 2.1 open-source driver (www.tomshardware.com)

核心事件

HDMI Forum 拒绝了 AMD 关于在开源 Linux 显卡驱动中添加 HDMI 2.1+ 支持的提案。由于 HDMI Forum 的法律合规要求,AMD 的开源驱动目前无法实现 HDMI 2.1 的相关高级功能。

背景与原因

2021 年,HDMI Forum 限制了 HDMI 规范的公开访问权限,规定仅授权制造商和开发者可获取技术细节(需支付版税)。此举旨在确保 HDMI 体验的质量与一致性,但严重阻碍了开源社区对 HDMI 驱动的开发与支持。

AMD 的努力与挫折

  • 长期沟通:过去三年中,AMD 与 X.Org 基金会持续与 HDMI Forum 协商,试图寻找允许开源实现私有 HDMI 规范的解决方案。
  • 研发投入:AMD 的 Linux 工程师与法务团队合作,耗时数月评估各项 HDMI 功能,并在内部的 AMDGPU 开源代码库中开发并原型化了 HDMI 2.1+ 特性的代码,以期通过审核。
  • 最终结果:HDMI Forum 最终否决了该请求,导致 AMD 在工程设计和代码原型上的大量资源投入付诸东流。

对用户的影响及官方建议

  • 功能受限:Linux 用户无法通过 HDMI 2.1 接口使用 4K@120Hz 和 5K@240Hz 等高级高刷显示功能。
  • 替代方案:AMD 官方建议 Linux 及开源系统用户改用 DisplayPort 接口,以获得最佳体验。

未来技术探索

面对当前的合规困境,AMD 未来可能需要探索其他技术路径来解决此问题,例如:

  • 将更多 HDMI 功能整合到闭源固件中。
  • 利用 PSP(Platform Security Processor)IP 模块来保护 HDMI 规范的特定部分。

但在短期内,开源驱动缺乏 HDMI 2.1+ 功能支持的现状仍将持续。

8. Can solar costs keep shrinking? (unchartedterritories.tomaspueyo.com)

太阳能成本能否持续下降?

历史趋势与近期波动

  • 太阳能光伏(PV)面板价格数十年来以每年约12%的速度下降,主要得益于生产规模扩大。
  • 太阳能已成为美国等国家新增电力容量的主要来源,且是目前最便宜的电力来源。
  • 近期反弹:2021年至2023年间,太阳能电力成本上升了约30%-100%,主要因新冠疫情导致的供应链中断、通货膨胀及利率上升等因素。

能源成本下降的重要性

  • 能源消耗停滞使经济增长受限(亨利·亚当斯曲线),富裕国家通常需要高能源消费。
  • 实现能源丰富可大幅提升经济水平(如美国人均GDP可从6.5万美元增至10-20万美元)。

成本结构转变

  • 传统主导因素:过去太阳能面板成本占比极高(如39%),但其价格已大幅下降(全球均价约0.25美元/瓦,低至0.10美元/瓦)。
  • 新主导因素:当前“软成本”(许可、检查、接网费、安装人工、利润等)占比超过60%,成为成本下降的主要障碍。
  • 组件成本细分(以公用事业级电站为例,总成本约1美元/瓦):
    • PV模块:39%(仍有下降空间)
    • 其他硬性成本(设计、土木工程、系统平衡、物流、人工等):43%
    • 软成本及其他(税收、许可、利润率等):18%

未来成本下降的驱动因素

  1. PV面板价格继续下降:投资激增、技术向更薄更廉价方向发展(如近纸厚硅层),价格可能降至0.05美元/瓦甚至更低。
  2. 系统设计革新
    • 摒弃传统支架、跟踪器、深埋桩基,采用更简易的安装方式(如Erthos的“地面铺设”系统、Jurchen的轻型钢架系统)。
    • 可大幅减少土地使用、土木工程、沟渠开挖、安装时间和人力需求,降低资本支出(CAPEX)和运营成本(OPEX)。
  3. 效率提升
    • 双面组件、半切电池、背接触电池等技术可提高发电量。
    • 效率从2010年10%提升至当前20%,未来可能突破40%,使单位成本进一步下降。
  4. 其他成本压缩
    • 逆变器成本持续下降。
    • 利润率因竞争和行业成熟度提升而下降。
    • 资本成本降低:前期投资减少、风险降低、未来可能降息。
    • 土地成本:虽不可再生且优质地块稀缺,但低价区域将被更多利用,且技术革新可减少用地需求。

未来成本预测

  • PV面板:从0.39美元/瓦降至~0.05美元/瓦。
  • 建设及系统成本:从0.47美元/瓦降至0.10美元/瓦(因设计简化和效率优化)。
  • 软成本及利润率:绝对值压缩。
  • 综合效应:预计总成本可下降8倍左右,之后增速放缓。
  • 额外增益:效率提升可使发电量翻倍,进一步降低单位成本。

结论

尽管近期出现成本反弹,但太阳能成本长期下降趋势仍将持续,主要依靠技术进步、系统设计革新和效率提升。未来太阳能成本有望大幅降低,推动能源廉价化,从而促进经济增长和能源普及。

9. Maker Skill Trees (github.com)

Maker Skill Trees 是一个提供可打印模板的项目,旨在帮助用户可视化技能进度、识别技能差距并获取学习灵感。每个技能树包含73个六边形技能图块,按从基础到高级的顺序排列,用户可通过涂色追踪进展。该项目遵循 Creative Commons BY-NC-SA 4.0 许可,允许免费用于教学、工作坊等非商业用途,但需注明来源;商业使用需通过赞助获取许可。

主要特点与使用方式:

  • 模板结构:图块从底部基础技能开始,向上进阶,用户可灵活自定义目标和顺序。
  • 使用方式:可选择打印或数字模板,从基础开始涂色记录已完成技能,并利用贴纸或编辑工具定制图块。
  • 技能树生成器:提供在线工具,支持用户自行创建和编辑技能树模板。
  • 扩展应用:可用于个人目标追踪、创客空间成员技能培训、新员工培训、学生自主学习等场景。

相关项目与工具:

  • Skill Quest:免费开源的技能追踪软件,支持协作和未来功能扩展。
  • Skill Seeker 书籍:包含《Maker Edition》(成人版)和《Young Maker Edition》(8-12岁版),结合技能树与游戏化追踪;《Life Quest》成人生活技能书籍计划于2026年推出。
  • 转换工具:支持将 SVG 文件转换为 YAML 格式,便于机器读取和版本管理。

技能分类示例: 项目涵盖广泛技能领域,包括:

  • 经典技能:如木工、缝纫、电子音乐制作等。
  • 技术技能:如3D打印、编码、机器人技术、电路板设计等。
  • 生活技能:如烹饪、园艺、财务、自我护理等。
  • 其他类别:科学数学、体育游戏、文化实践及儿童教育相关技能。

社区与贡献: 项目鼓励社区参与,通过同行评审、翻译和提交新技能树进行完善。贡献者可通过 Wiki 了解指南并获取奖励。项目非AI生成,依赖专家协作。

支持与传播: 用户可通过赞助、购买海报或书籍支持项目。项目已在 Hackaday、Adafruit 等平台受到报道,并配有相关演讲和教学资料。

FAQ 摘要

  • 名称虽非传统连接节点式技能树,但保留以便理解。
  • 未来计划扩展更多技能书籍,暂无短期网页应用开发计划。
12. The 4-chan Go programmer (www.dolthub.com)

The 4-chan Go programmer 摘要

本文讨论了Go语言中一种夸张的并发编程模式,源于作者在开发版本控制SQL数据库Dolt时的经历。文章首先指出,Go通常以简单直接的方式使用channels和goroutines进行并发,但作者从一个开源项目继承了使用chan chan struct{}的代码,该代码通过发送额外channels来实现扇出模式,尽管有效却难以理解和维护。

受此启发,作者探索了这种“愚蠢想法”的极限,创建了“4-chan”:_4chan := make(chan chan chan chan int),即一个四层channel结构。这源于C语言中指针间接的玩笑,对应“4-star程序员”,在Go中则用channels替代指针。

程序实现了一个计算数字五次方的分布式示例:使用4层channels,每层基于常数分支因子(例如3)生成生产者和消费者goroutines。底层发送实际int值,通过atomic.Int32累加结果,最终打印正确结果如3 ^ 5: 243。关键函数包括sendChanChanChanreceiveChanChanChan等,展示了channels的递归生产与消费。

文章强调这仅是实验性代码,不适用于实际场景,因为存在实现复杂、调试困难、goroutine泄漏等问题,但有趣且能演示Go的灵活性。结尾邀请读者加入Discord讨论。

13. OpenAI is shockingly good at unminifying code (glama.ai)

该内容是一段被混淆的JavaScript代码,展示了两个几乎相同的React组件,用于创建一个ASCII艺术风格的动画效果。以下是代码的核心要点:

主要目的

  • 创建一个基于字符的动画,利用数学函数计算每个位置应该显示的ASCII字符,形成动态视觉效果。

关键结构与功能

  1. 核心数学函数nT函数计算 cos(x² - y²),用于生成动画的数学基础。
  2. 字符映射函数eToT 函数根据坐标(x, y)、时间、网格尺寸和屏幕宽高比,计算索引并返回对应的ASCII字符。
  3. React组件
    • 使用 useRef 获取DOM元素引用。
    • 使用 useState 管理窗口尺寸(高度、宽度),并监听 resize 事件进行更新。
    • 使用 useEffect 设置一个间隔定时器(目标帧率为60fps),在每一帧中:
      • 根据窗口尺寸和预设的单元格大小(12像素)计算网格的列数(s)和行数(o)。
      • 双重循环遍历网格的每个单元格,调用字符映射函数生成当前帧的文本。
      • 将生成的文本赋值给DOM元素的 textContent
  4. 样式:组件使用绝对定位和预格式文本(white-space: pre)来展示字符网格,并隐藏溢出部分。

代码混淆特征

  • 数学方法(Math.floor, Math.abs, Math.min)被重命名为 ra, KE, QE 等。
  • 字符串数组变量被命名为 O5, D5
  • 组件和函数名被简短命名(如 eT, tT, oT, aT)。
  • 代码整体被压缩并混淆了变量名,增加了直接阅读的难度,但逻辑结构保持清晰。
14. New 2GB Raspberry Pi 5 has 33% smaller die, 30% idle power savings (www.jeffgeerling.com)

Raspberry Pi 5 2GB版本:芯片改进与性能分析

Raspberry Pi 推出了2GB内存版本的Pi 5,售价50美元,相比其他版本内存减半、价格更低。其核心改进在于采用了新的BCM2712 D0芯片,替代旧版的C1芯片。D0芯片移除了未使用的功能(如内置以太网控制器),导致芯片尺寸减小32.5%,从而可能降低制造成本。

性能测试

  • 由于内存限制(仅2GB),Geekbench基准测试无法完成(内存不足导致系统崩溃),但使用轻量级工具sysbench进行CPU测试。
  • 超频测试显示,在改进冷却和电压调整下,CPU最高稳定频率约为3.5 GHz(3.6 GHz时出现内存错误和系统冻结)。
  • 与旧版C1芯片相比,D0芯片在默认设置下性能相似,但超频潜力受限。

能效与热性能

  • D0芯片显著降低功耗:空闲功耗从C1版本的3.3W(4GB)或3.2W(8GB)降至2.4W,节省约30%。
  • 空闲温度略低(30°C vs 32°C),压力测试下功耗和温度也均有改善(如压力测试功耗8.9W vs 9.8W)。
  • 功耗节省部分归因于内存减少,但D0芯片的电压表优化(如2.1 GHz时电压更低)也起关键作用。
  • 内存密集型测试(如HPL基准)中,2GB版本整体效率较低(2.07 Gflops/W vs 8GB的2.75 Gflops/W),因内存限制影响性能。

结论

  • 2GB Pi 5适合不需要大内存的应用场景,其芯片改进带来成本降低和能效提升。
  • 对于多数用户,内存仍是关键因素:4GB版本被视为性价比适中的选择,而2GB版本则针对特定需求(如轻量级任务或预算有限)。
15. Farewell Pandas, and thanks for all the fish (ibis-project.org)

告别 Pandas:Ibis 弃用 pandas 和 dask 后端

主要决定

Ibis 项目宣布弃用 pandas 和 dask 后端,并计划在版本 10.0 中移除它们。pandas DataFrames 仍将作为数据输入和输出的格式支持,但不再用于执行查询。

历史背景

早期 Ibis 只有 Impala 后端,随后添加了 Postgres 后端。为了让用户更轻松地试用 Ibis(无需安装数据库),引入了 pandas 作为内存后端,便于通过 pip 安装快速体验。

弃用原因

pandas 后端的问题

  • 延迟执行模型冲突:pandas 是即时执行引擎,而 Ibis 采用延迟执行以支持查询优化,导致适配困难,性能往往不如直接使用 pandas。
  • NaN 与 NULL 差异:pandas 用 NaN 表示缺失值,而 Ibis 和其他后端使用 NULL,这造成类型系统混乱和持续困扰。
  • 数据类型改进有限:尽管 pandas 的 Arrow-backed 类型有所改进,但仍不完善。
  • 误导新用户:新用户因熟悉 pandas 而选择该后端,但体验不佳,误认为“Ibis 速度慢”,而 DuckDB 或 Polars 后端更优。
  • 功能重复:DuckDB 后端已无缝支持查询 pandas DataFrames、用户自定义函数(UDF)以及读写多种格式(如 Parquet、CSV、JSON),无需 pandas 后端。

dask 后端

dask 后端因与 pandas 有诸多相似之处,同样面临弃用。Dask 本身是优秀项目,但独立于 Ibis 使用。

DuckDB 后端优势

DuckDB 是 Ibis 的默认后端,具备以下优点:

  • 易于安装和本地运行。
  • 性能卓越。
  • 与 Python 生态系统良好交互。
  • 支持 pandas DataFrames 和多种数据格式。

这些优势完全覆盖了早期引入 pandas 后端的需求,且提供更高效、一致的体验。

结论

弃用 pandas 和 dask 后端将简化 Ibis 的维护,提升用户性能体验,同时保留 pandas DataFrames 作为数据交换格式。用户应转向 DuckDB 后端以获得最佳性能。

16. Raspberry Pi Pico does line rate 100M Ethernet (github.com)

Raspberry Pi Pico 线速 100M 以太网库 (NCE) 总结

项目概述

本项目是 pico-rmii-ethernet 库的更新版(Neon Chrome Edition),旨在使 Raspberry Pi Pico (RP2040/RP2350) 实现接近 100M 线速的以太网传输。使用 DMA sniffer 或超频时,iperf 测速最高可达 94.9 Mbit/sec。

核心改进与功能

  • 高传输率:未修改的 LAN8720a 模块在 300 MHz 系统时钟下可达 94.9 Mbit/sec;修改后的模块支持 150、200、250、300 MHz 多种时钟频率。
  • 引脚与时钟:RMII 时钟可映射至任意 GPIO。时钟由 Tx PIO 代码生成,解决了上电时 50MHz 外部时钟与 PIO 时钟不同步的问题。
  • 协议与接口:正确插入发送数据流的包间间隙(IPG),并实现了中断驱动的 MDIO 接口。

技术架构与资源占用

  • 数据流控制:采用 DMA 驱动的环形缓冲区。发送端完全由 DMA 驱动,接收端辅以每包中断进行收尾处理。
  • CRC 卸载:可选启用 DMA sniffer 处理 CRC 计算。若使用 CPU 计算,300 MHz 下几乎占满 Core 1;启用 DMA CRC 可显著降低 CPU 负载,Core 0 则完全留给用户应用。
  • 资源消耗:占用 4 个 DMA 通道、2 个中断、两块 4KB 对齐的内存区域,以及 19 至 25 条 PIO 指令(取决于内/外部时钟配置)。

配置与编译指南

  • 硬件适配:使用内部时钟时,需用 GPIO 驱动 LAN8720a 的复位引脚以确保正确初始化。MDIO 时钟生成可按需禁用以释放引脚。
  • 性能调优:为获最佳性能,建议代码直接从 SRAM 运行(配置为 no_flashcopy_to_ram)。RP2040 在 150/200 MHz 运行时,需注释掉 CMakeLists.txt 中降低 Flash 速度的相关配置,否则速率会降至约 70 Mbit/sec。
  • 编译构建:提供专用的 Bash 和 CMake 脚本,支持一键构建 RP2040 和 RP2350 (Pico 2) 平台的可执行文件。

已知限制与硬件观察

  • 并发限制:处理多客户端大 TCP 事务(如高并发 ping)时,接收环形缓冲区易溢出引发硬错误;单客户端大事务可稳定运行。
  • 模块差异:部分 LAN8720a 模块缺失上电复位 RC 网络(可通过测量复位引脚至 VCC 电阻是否约为 1.5K 来确认),这可能导致内部时钟模式下的复位状态异常。
18. Threads Enables Fediverse Replies (blog.karliner.net)

Threads 启用联邦宇宙回复功能

核心进展:
Instagram 负责人亚当·莫塞里宣布,Threads 正式接入联邦宇宙(Fediverse)的下一步功能:除此前已支持的从 Mastodon 等平台关注 Threads 账户外,现在用户还可以直接回复和点赞 Threads 帖子。这表明 Threads 正以谨慎渐进的方式推进联邦协议整合,并体现出 Meta 对开放系统的承诺。

战略动因:
作者认为,Meta 推动开放并非出于善意,而是基于商业智慧——主动采取开放策略,以避免未来可能面临的监管强制要求或反垄断拆分。此举被视为行业趋势的开端。

用户反应与行业影响:
该消息在 Threads 平台引发大量“什么是联邦宇宙?”的疑问,显示公众认知正在扩大。与此同时,Tumblr 宣布将全面迁移至 WordPress 平台,这意味着 Tumblr 将自动获得强大的联邦宇宙插件支持。此前 Tumblr 曾承诺接入联邦宇宙但未实现,平台迁移后将免费具备联邦功能。

未来展望:
预计约5亿个 Tumblr 博客将陆续接入联邦宇宙,形成庞大生态。此外,Threads 用户可能开始互动 Tumblr 帖子,为 Tumblr 这一陷入困境的平台注入新活力。这一系列变化标志着开放社交媒体的真正潜力即将展现,跨平台互联与内容流通将进入新阶段。

19. Twenty Years of Valgrind (2022) (nnethercote.github.io)

Valgrind 诞生二十周年回顾 (2022)

Valgrind 简介
Valgrind 是一个用于构建动态分析工具的 instrumentation 框架,能自动检测内存管理和线程错误,并支持详细的性能分析。自 2002 年 7 月发布 1.0 版本以来,已走过二十年。

起源与早期开发

  • 作者最初于 2001 年末遇到 Valgrind 创始人 Julian Seward,当时 Julian 正在完成 GHC(Glasgow Haskell Compiler)的工作后投身 Valgrind 项目。
  • Julian 曾开发过 bzip2 压缩工具,并创建了缓存分析工具 cacheprof。受商业工具 Purify(用于检测内存错误)启发,他决定为 x86/Linux 开发开源替代品。
  • Valgrind 采用 JIT 编译而非简单的二进制解释,以实现高效运行时分析。早期版本已能处理大型程序,并受到 KDE 开发者的使用。

关键技术进展

  • 作者利用 Valgrind 的动态二进制 instrumentation 开发了 Cachegrind,并于 2002 年 4 月集成。
  • 核心/工具分离:2002 年底,将通用 instrumentation 代码(核心)与特定工具代码分离,催生了 Memcheck(内存检查工具)和独立的 Cachegrind。Valgrind 从此成为整个框架的名称,而 Memcheck 成为其标志性工具。
  • 这一架构(最初称为“核心/皮肤”,后改为“核心/工具”)极大地促进了新工具的开发。

重要工具与贡献

  • Helgrind:由 Julian 编写,用于检测数据竞争。
  • Callgrind:由 Josef Weidendorfer 开发,是增强版的 Cachegrind。
  • Massif:2003 年作者编写,用于堆内存分析。
  • DRD:2007 年 Bart Van Assche 编写的另一种竞争检测器。
  • DHAT:2010 年 Julian 编写的堆分析器,2019 年经过改进,拥有更友好的用户界面。
  • 此外,还有多种其他工具,部分被用作研究论文的基础。

学术影响与认可

  • 作者于 2004 年完成以 Valgrind 为主题的博士论文。
  • 2005 年,发表了关于 Memcheck 位精度定义性检查的论文(USENIX)。
  • 2007 年,在 PLDI 发表了 Valgrind 框架概述论文(成为最被引用的 Valgrind 论文),并在 VEE 发表了关于内存阴影技术的论文。
  • Valgrind 获得多项奖项,包括 2004 年开源奖(铜奖)、2006 年 Google-O'Reilly 开源奖(最佳工具制造者)、2008 年 TrollTech Qt 开源开发奖。

持续影响与现状

  • Valgrind 仍被广泛使用,Memcheck 已成为许多项目测试流程的标准部分。
  • ASan(AddressSanitizer)的灵感可能直接来自 Valgrind,但其采用静态 instrumentation,速度快但覆盖不完整(如运行时生成代码和系统库),且不具备 Memcheck 的位级定义性检查能力。
  • 作者目前专注于 Rust 语言,该语言从根本上避免了 Memcheck 所检测的错误。他仍经常使用 Cachegrind、Callgrind 和 DHAT 进行性能分析。
  • 今天,Valgrind 的维护已由 Mark Wielaard 等众多贡献者接管,作者与 Julian 则处于“荣誉退休”状态。

结语
Valgrind 通过其创新的动态二进制分析框架,显著提升了 C/C++ 程序的正确性标准,并持续为开发者提供强大的调试与性能分析工具。

20. Show HN: An open-source, local-first Webflow for your own app (github.com)

Onlook:开源的可视化优先代码编辑器

项目概述

Onlook 是一个开源、视觉优先的代码编辑器,旨在通过 AI 辅助在 Next.js 和 TailwindCSS 环境中构建网站、原型和设计。它允许用户直接在浏览器 DOM 中进行可视化编辑并实时同步代码,是 Webflow、V0、Bolt.new 等工具的开源替代方案。

核心功能

  • 快速创建应用:支持通过文本或图像生成、使用预置模板、从 Figma 或 GitHub 仓库导入,以及直接向 GitHub 提交 PR。
  • 可视化编辑:提供类似 Figma 的 UI,支持实时预览、品牌资产与 Token 管理、页面与图层浏览、组件检测与拖拽,以及使用分支进行设计实验。
  • 开发与部署工具:内置实时代码编辑器、检查点保存与恢复、CLI 命令执行;支持秒级部署、生成分享链接及绑定自定义域名。
  • 团队协作:支持多人实时协同编辑和添加评论。
  • 高级 AI 能力:支持多消息队列、图像作为参考或资产、MCP 集成,并允许 AI 将自身作为工具调用以进行分支创建和迭代。

工作原理与架构

Onlook 的核心架构实现了视觉设计与底层代码的无缝映射:

  1. 代码被加载到 Web 容器中运行并提供服务。
  2. 编辑器通过 iFrame 接收并显示预览链接。
  3. 系统读取并索引容器内的代码,通过代码插桩(Instrumentation)将 DOM 元素精确映射到源代码位置。
  4. 用户在可视化界面编辑元素时,系统会同步更新 iFrame 和底层源代码。
  5. AI 聊天助手拥有代码访问权限和专属工具,可深度理解并修改代码。

该架构理论上可扩展至任何声明式渲染 DOM 的语言或框架,目前主要专注于 Next.js 和 TailwindCSS。

技术栈

  • 前端:Next.js, TailwindCSS, tRPC
  • 数据库:Supabase (认证/数据库/存储), Drizzle (ORM)
  • AI 集成:AI SDK, OpenRouter, Morph Fast Apply, Relace
  • 沙盒与托管:CodeSandboxSDK, Freestyle
  • 运行时与环境:Bun, Docker

项目状态与开源信息

Onlook 目前仍处于积极开发阶段(Web 版),采用 Apache 2.0 开源许可证。项目鼓励社区贡献,开发者可通过 GitHub 提交 Issue 或 PR,官方也提供了详细的架构文档和 Discord 社区以供协作与交流。

22. Computer scientists prove that heat destroys quantum entanglement (www.quantamagazine.org)

计算机科学家团队意外证明,温度超过特定阈值时量子纠缠会完全消失。这一结论来自一个研究量子计算算法的计算机科学家团队,他们原本在探索高温下量子系统的热平衡状态算法。

量子纠缠与温度的已知矛盾
量子纠缠是量子粒子相互作用时形成的特殊关联状态,使其呈现超越个体总和的整体特性。在极低温下,纠缠可以长距离扩展并引发超导等现象。但当温度升高,原子热运动会破坏脆弱的纠缠连接。物理学家长期难以精确描述这一过程的细节。

突破性数学证明
麻省理工学院和加州大学伯克利分校的四名计算机科学家团队证明:在数学模型中,任何量子自旋系统在热平衡状态下,都存在一个明确的温度临界点,一旦超过该温度,纠缠不仅会指数级减弱,而是会完全归零。团队成员Ankur Moitra强调:“这不是指数级减小,而是直接为零。”此前研究曾观察到类似现象并称之为“纠缠的突然死亡”,但证据多为间接性;而此次通过严格数学论证,为这一现象建立了更强有力的理论限制。

偶然发现源于算法研究
该团队最初在探索量子计算机的理论能力时,专注于开发模拟高温量子系统行为的新算法。他们利用自旋系统模型分析量子计算优势的边界问题。在合作过程中,团队借鉴了学习理论的方法,设计出一种快速算法,但在发表前被另一团队抢先发表了类似成果。然而,在比较结果时,合作研究者Álvaro Alhambra发现该团队在证明过程中意外得出了纠缠消失的结论,并指出这一中间结果具有重要学术价值。

学术界反响
这一证明引起了量子物理学领域的关注。麻省理工学院物理学家Soonwon Choi评价该结论“非常非常强”,并表达了对这一发现的深刻印象。该成果不仅解决了长期存在的理论疑问,也为理解量子计算在不同温度条件下的适用性边界提供了新视角。

23. Window Maker: X11 window manager with the look and feel of the NeXTSTEP UI (www.windowmaker.org)

Window Maker 是一款 X11 窗口管理器,最初设计为 GNUstep 桌面环境 提供集成支持,但也可独立运行。它旨在完整复现 NeXTSTEP 用户界面 优雅的外观和使用体验。

核心特点包括:

  • 一款具备半自动平铺管理能力的堆叠式窗口管理器
  • 轻量且速度极快
  • 易于使用,并高度可配置
  • 支持将键盘快捷键绑定到多种操作
  • 提供动态菜单条目可停靠的小型应用(dockapps)
  • 配置文件采用人类可读格式,并附带图形界面首选项应用程序
  • 自由开源,拥有来自全球的活跃社区。

获取与安装:

  • 许多发行版已将其包含在软件仓库中,可直接安装。
  • 最新稳定版本为 0.96.0(发布于 2023-08-05),源代码可通过 Git 仓库获取。
  • 旧版本可从 GitHub 发布页面或官方网站下载。

问题反馈:

24. Kotlin for data analysis (kotlinlang.org)

Kotlin 数据分析工具概述

核心功能与优势

Kotlin 的探索性数据分析(EDA)工具,包括 Kotlin notebooks、Kotlin DataFrame 和 Kandy,为软件开发人员提供了强大的数据分析能力。这些工具支持加载、转换和可视化各种格式的数据(如 CSV、JSON、SQL 数据库、Parquet 文件),并允许在集成开发环境(IDE)中直接操作。通过 Kandy 库,用户可以创建多样化的图表以可视化数据,从而获得洞察。此外,这些工具支持高效分析关系数据库中的数据,并能通过 OpenAPI 等协议从 Web API 获取实时数据集。

工具详细介绍

Notebooks(笔记本)

笔记本是一种交互式文档,允许混合可执行 Kotlin 代码、文本、可视化和结果。它扩展了 Kotlin REPL 的功能,支持代码分组、Markdown 文档化以及即时输出显示。Kotlin 提供多种笔记本解决方案:

  • Kotlin Notebook:作为 IntelliJ IDEA 的插件,提供完整的 IDE 体验,包括实时代码洞察和项目集成。
  • Datalore:基于浏览器,无需额外安装,支持实时协作、智能编码辅助和交互式报告导出。
  • Kotlin-Jupyter Notebook:开源 Jupyter 环境中的 Kotlin 支持,适用于创建和共享包含代码与可视化的文档。 这些解决方案基于 Kotlin Kernel,代码可无缝共享和迁移,确保兼容性。

Kotlin DataFrame

Kotlin DataFrame 是一个用于操作结构化数据的库,涵盖数据创建、清理、分析和特征工程。它支持多种文件格式(如 CSV、JSON、XLS、XLSX),并能连接 SQL 数据库或 API 进行数据检索,简化了数据处理流程。

Kandy

Kandy 是一个开源 Kotlin 库,提供领域特定语言(DSL)用于绘制各种图表。它以简洁、符合习惯、可读且类型安全的方式可视化数据,并与 Kotlin notebooks 和 DataFrame 库无缝集成,便于完成数据相关任务。

集成与应用场景

这些工具共同支持从数据获取到可视化的完整流程。用户可通过 Kotlin Notebook 的拖放功能轻松检索数据,使用 DataFrame 进行清理和转换,并用 Kandy 生成图表。输出图表可快速导出。工具间的兼容性确保了高效的工作流,适用于调试、内存转储分析、数据库查询以及处理 REST API 中的 JSON 数据等场景。

未来方向

后续重点包括使用 Kotlin DataFrame 库进行数据检索和转换,以及利用 Kandy 库进行数据可视化,同时鼓励探索更多 Kotlin 和 Java 数据分析库。

25. Docusaurus – Build optimized websites quickly, focus on your content (docusaurus.io)

Docusaurus 简介

Docusaurus 是一个静态网站生成器,旨在帮助用户快速构建优化网站,专注于内容创作。它通过多种功能简化文档和网站开发流程,特别适用于技术文档、博客和开源项目。

关键功能

  • MDX 支持:允许用户使用 MDX 编写文档和博客文章,Docusaurus 会自动将其构建为静态 HTML 文件。MDX 还支持在 Markdown 中嵌入 React 组件,提升内容灵活性。

  • React 基础:基于 React 构建,用户可以通过编写 React 组件扩展和自定义网站布局。可插拔架构支持重用 Docusaurus 插件的数据,便于设计个性化站点。

  • 翻译支持:开箱即用的本地化功能,支持使用 git、Crowdin 或其他翻译管理器翻译文档,并可单独部署不同语言版本。

  • 文档版本控制:帮助管理项目多个版本的文档,确保文档与软件发布保持同步,支持用户访问所有版本的内容。

  • 内容搜索:集成 Algolia 文档搜索,使社区能轻松查找所需信息,提升文档可用性。

用户反馈

Docusaurus 受到众多工程师和开源项目的欢迎,用户评价普遍积极:

  • Redux 组织使用多年,专注于内容定制,运行稳定。
  • V2 版本减少了文档构建时间,提升了开发效率。
  • 项目如 IOTA wiki、Testing Library 和 Temporal 采用 Docusaurus,改进了文档质量和维护性。
  • 开发者如 Christopher "vjeux" Chedeau(Prettier)、Hector Ramos(React Native)和 Ricky Vetter(ReasonReact)称赞其简化了开源项目文档的创建和管理,增强了协作和贡献。

总之,Docusaurus 通过高效的功能和社区支持,成为构建内容驱动网站的理想工具,特别适合需要快速部署、多语言支持和版本管理的场景。

27. How I learned to stop worrying and love userspace networking (friendshipcastle.zip)

摘要

作者在自托管环境中运行k3s服务器和fly.io云服务,希望k3s工作负载能访问fly.io上的AI服务器,但避免设置VPN(因与Kubernetes混合复杂)或暴露服务器到互联网(因隐私和成本问题)。他转向用户空间网络,即在网络栈的用户空间层面实现数据处理,无需内核介入,从而避免sudo权限和系统破坏风险。

通过研究,作者发现wireguard-go的netstack支持Go程序的用户空间TCP/IP栈。尽管文档不足,他通过strace分析WireGuard配置和调试,成功加载配置并进行HTTP请求,还需预解析DNS地址。最终,他开发了glaceon工具:一个Go程序,作为HTTP反向代理,通过WireGuard连接到远程主机,成为wireguard-go用户空间使用的最简示例。

最初手动在k3s上运行glaceon,后使用operator-sdk创建Kubernetes操作符,简化管理。操作符基于最佳实践,但作者对Go框架有保留。通过YAML配置(如定义命名空间和MachineProxy资源),应用可直接通过HTTP访问远程服务,类似在fly.io上的体验。

安装步骤包括:应用操作符、创建fly组织API令牌、设置Kubernetes秘密,并创建MachineProxy资源。此方案解决了网络访问问题,无需VPN或互联网暴露,提升了安全性和便利性。

28. Escaping from Anaconda's Stranglehold on macOS (paulromer.net)

本文介绍了在 macOS 系统上解除 Anaconda 对 Python 环境的控制、恢复使用官方 Python 的简便方法。主要针对因安装 Anaconda 后无法运行官方 Python 的初学者用户,无需使用命令行或编辑文件,仅通过图形界面的拖拽操作即可完成。

核心问题

许多 macOS 用户在首次课程中安装了 Anaconda 后,发现系统无法运行官方 Python。这些用户通常不熟悉命令行操作,寻求帮助时也难以理解复杂的技术说明。

解决方案:拖拽 .zshrc 文件

通过将家目录中的隐藏文件 .zshrc 拖移至桌面,即可阻止 Anaconda 自动加载并控制系统环境,从而恢复官方 Python 的正常运行。操作步骤如下:

  1. 打开 Finder,进入个人“家”目录。
  2. 点击名称列标题使排序箭头向上(^)。
  3. 同时按下 ShiftCommand. 键以显示隐藏文件(以点开头的文件/文件夹)。
  4. 找到名为 .zshrc 的文件(可能伴有 anaconda3 文件夹)。
  5. .zshrc 文件从家目录拖拽至桌面(或其他位置)。
  6. 完成。此后启动 Python 会话时,将使用从 python.org 下载安装的官方版本。

切换环境

  • 使用 Anaconda:将桌面上的 .zshrc 文件拖回“家”目录。
  • 使用官方 Python:将家目录中的 .zshrc 文件拖至桌面。
  • 已运行的会话不受文件移动影响,因此可同时使用两种环境。

使用官方 Python 的优势

  1. 多版本管理:可安装并管理多个官方 Python 版本,安装速度快。
  2. 清洁环境:易于删除和重装 Python,方便恢复初始状态。
  3. 依赖管理:可通过 requirements.txt 文件和 pip 命令一次性安装项目所需库。
  4. 简化流程:初学者可暂不学习“虚拟环境”等复杂概念。

官方 Python 管理指南

  • 安装:从官网下载“macOS 64-bit universal2”安装包,安装后务必运行 Update Shell Profile.commandInstall Certificates.command
  • 查看:可将 /Library/Frameworks/Python.framework 文件夹拖至 Finder 侧栏以便快速访问已安装版本。
  • 删除:在 Finder 中选中特定版本文件夹(如 3.10),按 Command + Delete 并验证即可删除。
  • 彻底重装:为确保环境清洁,应先删除主版本文件夹(如 3.12),再重新安装(即使更新小版本)。

故障排除

若无法找到 .zshrc 文件,可能原因及对策如下:

  • A. 系统或 Anaconda 版本过旧:早期 macOS 使用 bash shell,相关配置文件为 .bash_profile。可尝试移动此文件,但可能影响其他程序。推荐做法是更新 macOS 以启用 zsh,然后使用 TextEdit 编辑 .bash_profile,删除被 >>> conda<<< conda 标记包裹的 Anaconda 代码段。
  • B. 仍使用 bash shell:若坚持使用旧版 bash,可参照方案 A 编辑 .bash_profile
  • C. 其他程序修改了 .zshrc:若移动文件导致其他程序失效,可用 TextEdit 编辑该文件,仅删除 Anaconda 注入的代码段,保留其他必要代码。
  • D. 用户自定义了 .zshrc:同理,编辑文件以保留个人命令,移除 Anaconda 代码。
29. The Future of TLA+ [pdf] (lamport.azurewebsites.net)

TLA+ 的未来发展摘要

本文由 Leslie Lamport、Stephan Merz 和 Chris Newcombe 于 2024 年 7 月撰写,旨在为 TLA+ 基金会提供关于语言变更的指导原则。核心观点强调 TLA+ 的基础是数学而非编程语言,其设计初衷(简洁性、形式化推理能力)不应因迎合编程习惯而改变。

主要变更原则

语言变更存在三类成本:1)使现有规范失效;2)增加语言复杂性;3)需要修改工具(当前维护者较少)。增加新功能必须具有充分理由,尤其是仅为了节省少量代码空间或模仿编程语言的变更应被否决。删除未广泛使用的功能可简化语言,但需谨慎评估影响范围。

底层形式化基础

  • TLA 时序逻辑:基于行为(状态序列)描述并发程序与属性,是 TLA+ 的核心,不应更改。
  • 普通数学:以 ZFC 集合论为基础。添加类型系统(如简单类型或 Coq 式类型)被认为收益不足且大幅增加复杂性;类型检查问题通常可通过模型检验发现。
  • 证明:结构化证明的语义(如“假设-证明”含义)已确定。后端证明器的指令方式(如 havetake)可能随 AI 技术发展而调整,但当前设计基本稳定。

语言各部分潜在变更

  1. 普通数学常见运算符(逻辑、集合论):遵循标准数学符号,无充分理由添加或修改。ASCII 编码虽历史遗留,但未来可考虑 Unicode 转换。可能删除极少使用的元组量化或进制数字面量。
  2. 非常见数学运算符:包括记录、特定函数运算符等,当前设计已足够,不建议更改。
  3. TLA 运算符(行动与时序算子):基础语义不变。部分算子(如行动组合 、开放系统算子 +−)极少使用且缺乏工具支持,可考虑弃用或文档淡化。时序量化符 ∃∃∃∃∃∃∀∀∀∀∀∀ 尚无工具支持,但可能用于表达超属性。
  4. 证明语法:除语义调整外无大改动。new actionnew temporal 声明可能无用。子表达式命名功能需进一步评估实用性。
  5. 模块结构:现有声明(如 extendsinstance)已够用。子模块便于封装变量存在性描述,可保留;递归声明虽冗余但有助于防止循环定义。

PlusCal 作为网关语言

PlusCal 设计为 TLA+ 的入门桥梁,但已过时(发布于约 20 年前)。任何用于吸引新用户的网关语言必须:

  • 外观符合当前编程语言潮流;
  • 能直接转换为 TLA+,且转换逻辑简单透明;
  • 新增功能会增加转换复杂性,可能需视为新语言变体。基金会有权决定提案是否适合作为网关。

注释说明

文末注释进一步解释:TLA+ 中函数被定义为原始概念而非序对集合;元组与函数应用的括号选择旨在避免歧义;except 结构虽不美观但暂无更优替代方案。

31. Show HN: Skip – Build native iOS and Android apps from a single Swift codebase (skip.tools)
# Skip:从单一 Swift 代码库构建原生 iOS 和 Android 应用

**核心功能**:Skip 允许开发者使用 Swift 和 SwiftUI 编写单一代码库,该工具会将其分别编译为 iOS 平台原生的 SwiftUI 应用和 Android 平台真正的 Jetpack Compose 应用。整个过程在构建时完成,**不增加额外的运行时**。

## 工作原理与特点

1.  **原生渲染,无中间层**:
    *   iOS 端使用原生 SwiftUI。
    *   Android 端生成原生的 Jetpack Compose UI。
    *   应用外观和行为完全遵循各平台自身的 UI 工具包、主题、无障碍功能和平台规范,没有“模仿”带来的违和感。

2.  **构建时编译,无运行时依赖**:
    *   Skip 在构建阶段完成代码转换。
    *   最终发布的应用不包含任何额外的运行时、嵌入式引擎或垃圾收集器(特别是 iOS 端),从而实现**小巧的二进制体积和可预测的性能**。

3.  **真正的原生性能**:
    *   应用以真正的原生代码运行,其性能与手写 Swift(iOS)和手写 Kotlin(Android)完全一致。
    *   没有因桥接带来的性能损耗,也没有因垃圾回收暂停导致的掉帧。

4.  **无缝的开发体验**:
    *   日常开发可在 **Xcode** 中进行,工作流、快捷键和调试工具保持不变。
    *   Skip 插件会在开发过程中**持续构建 Android 版本**,可以同时启动 iOS 模拟器和 Android 模拟器查看效果。
    *   需要针对特定平台调整时,也可使用 **Android Studio**。

5.  **直接平台互操作**:
    *   可以从共享代码中**直接调用任何 Kotlin 或 Java API**。
    *   能够无缝集成 Android SDK、Jetpack 库或第三方服务,无需复杂的桥接层或插件系统。

6.  **开源与无锁定**:
    *   Skip 是**免费、开源且由社区资助**的工具。
    *   由于 Skip 在构建时工作,且 iOS 应用本身对 Skip 零依赖,开发者可以随时停止使用而无需重写任何 iOS 代码。
32. Judge dismisses majority of GitHub Copilot copyright claims (lwn.net)
33. KDE Asking for Donations (pointieststick.com)

背景与动机

随着KDE软件日益普及,其运营成本(如服务器托管、大型活动、开发者冲刺及雇佣全职人员)不断增加。由于软件完全免费,若筹款速度跟不上用户增长,KDE将面临“死于成功”的风险。目前,捐款请求主要集中在社交媒体和官方博客,导致大量未关注这些渠道的用户不了解KDE的资金需求。

新举措:年度捐款通知

为扩大筹款信息的覆盖面,从 Plasma 6.2 开始,KDE将在每年12月通过系统通知向用户弹出一次捐款请求。此举旨在让未关注KDE官方宣传渠道的广大用户了解其财务需求。

设计与实现细节

为降低对用户的干扰,该通知在技术上进行了克制的设计:

  • 低干扰性:提示框小巧且不突兀,用户进行任何操作(点击或关闭)后,一年内不会再次出现。
  • 高可控性:作为 KDE Daemon (KDED) 模块实现,用户和发行版开发者可将其永久禁用;用户也可通过系统设置的“通知”页面单独关闭该弹窗。

决策依据与争议回应

  • 参考同行经验:Thunderbird和Wikipedia等项目采用类似甚至更具侵入性的提示,并未导致用户流失,反而大幅增加了捐款以雇佣更多人员。
  • 用户反感风险:尽管可能引发小部分用户抱怨,但最坏的结果仅是几年后若无成效再移除此功能,值得冒险尝试。
  • 资金来源结构:尽管目前已有Valve(通过Blue Systems)等厂商赞助,但健康的生态需要多方支持。KDE直接雇佣员工有助于掌握自身发展命运。
  • 提示位置选择:曾尝试在“欢迎中心”放置捐款请求,但用户刚安装系统时尚未建立对软件的认同感,时机不佳。

资金用途愿景

若筹款取得巨大成功,KDE e.V. 董事会将集体决定资金用途。作者提出的核心愿景包括:

  • 将现有核心贡献者转为全职,并招聘更多QA、发行版开发者和软件工程师。
  • 资助开发下一代KDE操作系统及配套的硬件认证项目,以吸引机构用户。
  • 扩大推广力度,推动Ubuntu、RHEL和SLED等主流企业级发行版默认搭载Plasma。

核心结论

面对财务问题,KDE选择主动规划。年度捐款通知是筹款计划的重要一环,旨在通过增加资金支持,加速KDE的生态扩张并持续提升软件质量。

34. Firefox rolls out Total Cookie Protection by default to more users (2022) (blog.mozilla.org)

Firefox 向更多用户默认推出全面 Cookie 保护

Firefox 正在全球范围内向更多用户默认启用“全面 Cookie 保护”(Total Cookie Protection)功能,旨在使其成为在 Windows、Mac、Linux 和 Android 上可用的最注重隐私和安全的主流浏览器。这是 Firefox 迄今为止最强有力的隐私保护措施。

核心机制:隔离 Cookie 防追踪

该功能通过为每个访问的网站创建独立的“Cookie 罐”来工作。当网站或其嵌入的第三方内容在浏览器中存放 Cookie 时,该 Cookie 仅被限制在分配给该特定网站的“罐”中。其他网站无法访问不属于自己的“Cookie 罐”,从而阻止追踪公司利用这些 Cookie 跨网站跟踪用户行为并构建复杂的用户画像。这种方法在消除第三方 Cookie 最严重的隐私问题(即跨站追踪)的同时,仍允许 Cookie 履行其侵入性较低的用途(例如提供准确的分析数据),在隐私保护和浏览体验之间取得了平衡。

优势与现有防护功能的对比

与此前的“增强型追踪保护”(ETP)相比,“全面 Cookie保护”提供了更强大的防护。ETP 通过维护一份列表来屏蔽已知的追踪器,但其局限在于未列入名单的追踪器仍可能活动。而“全面 Cookie保护”通过限制所有第三方 Cookie 的功能,而非仅针对特定列表,从而避免了上述问题,提供了更全面的保护。

发展历程与未来规划

“全面 Cookie保护”是 Mozilla 多年来打击在线追踪工作的结晶。从 2015 年的“追踪保护”功能,到 2018 年推出并默认启用的 ETP,再到引入针对指纹识别和超级 Cookie 的防护措施,Mozilla 持续致力于保护用户隐私。该功能经过严格测试后,现已在桌面版 Firefox 中全球默认启用。

展望未来,Mozilla 计划从 2024 年开始进一步屏蔽更多第三方 Cookie,并采用新的 Cookie 分区和清除机制,以减少持久性 Cookie 的使用,从而提供更好的浏览体验,朝着创建一个隐私不可被侵犯的互联网目标继续前进。

35. Ask HN: What books should I read to improve as a software engineer?
37. Panasonic Toughbook 40 (connect.na.panasonic.com)

Panasonic Toughbook 40 摘要

核心定位 Panasonic Toughbook 40(型号FZ-40)是一款14英寸的全加固型笔记本电脑,专为最严苛的工作环境设计,提供卓越的灵活性与可靠性。

主要特点与创新

  • 世界领先的模块化设计:拥有8个用户可更换区域(包括电池、内存、存储、键盘及xPAK扩展选项),提供超过10,000种组合配置,能完美适应各类工作流程。
  • 强劲性能:搭载英特尔® 酷睿™ Ultra vPro®处理器(可选Ultra 7 265H)并集成英特尔® AI Boost技术。它是业界首款可选配8GB独立显卡的加固型PC,可应对高强度图形与AI任务。
  • 卓越耐用性与设计:采用镁合金机身,通过6英尺跌落测试,符合MIL-STD-810HMIL-STD-461GIP66防护等级,并可选C1D2认证。热优化设计确保在苛刻环境下性能稳定。
  • 出色的显示与续航:配备14英寸全高清防眩光触摸屏,亮度高达1200尼特,户外可读性极佳。标准电池续航12小时,加装第二块电池可延长至24小时
  • 全面连接与扩展:支持Wi-Fi 7蓝牙,可选配5G(Sub6 + C-band)和GPS。接口丰富,包括雷电4 USB-C、多个USB-A、HDMI(最多2个)、以太网(最多2个)等,并支持多种扩展坞和驱动器。
  • 可靠性认证:其耐用性是普通商用笔记本的5倍,能显著减少维修次数、停机时间与总体拥有成本。

规格概览

  • 操作系统:Windows 11 Pro;红帽企业版Linux 10.1
  • 重量:约3.4公斤(7.5磅)
  • 保修:3年

总结 Toughbook 40是一款将极致模块化高性能计算全加固耐用性完美结合的移动工作站。其高度的可定制性和坚固设计,使其能够应对不可预测的环境挑战,确保在任何工作地点都能保持高效生产力。

39. MapRoulette: the micro-tasking tool for OpenStreetMap (maproulette.org)

MapRoulette 工具简介

MapRoulette 是一款专为 OpenStreetMap 设计的微任务(micro-tasking)工具。

核心目的

  • 旨在降低地图编辑的门槛,让用户能够成为世界地图的即时贡献者(instant contributor),从而快速、便捷地参与到全球地图数据的完善与更新工作中。
41. Ask HN: Where to find domain experts for 1:1 tutoring?
45. Show HN: turn videos into ASCII art (open source, js+canvas) (collidingscopes.github.io)

工具简介
一款开源免费的在线工具,可将视频或摄像头画面转换为 ASCII 像素艺术动画。支持实时调节颜色、分辨率、文字样式等参数,并可导出视频用于分享。

核心功能

  • 输入来源:支持摄像头实时录制或上传本地视频文件。
  • 自定义调整:提供颜色、分辨率、文本风格等可调控制选项。
  • 导出与分享:生成的动画可导出为视频文件,便于保存或上传至 Instagram 等平台。

技术实现

  • 基于 JavaScript、HTML Canvas 和 CSS 构建,视频编码使用 mp4 muxer 库。
  • 所有处理均在客户端完成,用户数据不会上传至服务器,保障隐私安全。

开源与许可

  • 完全免费,采用 MIT 开源许可证,支持个人及商业使用。
  • 源代码可在 GitHub 仓库查看,基于 Aleksandr Kubarskii 的代码开发。

使用提示

  • 工具运行需要一定计算资源,低性能设备可能出现卡顿。
  • 若视频导出失败,建议尝试使用 OBS Studio 等免费录屏工具。

相关项目
作者还提供了其他免费开源工具:

  • Particular Drift:将照片转换为流动粒子动画
  • Shape Shimmer:照片转换为波浪动画
  • Colliding Scopes:照片转万花筒动画
  • Force-Field Animation:照片转粒子动画
  • Manual Brick Breaker:手势控制打砖块游戏
46. How Intel Missed the iPhone: The XScale Era (thechipletter.substack.com)

《英特尔如何错过iPhone:XScale时代》摘要

本文挑战了关于英特尔错过iPhone机会的常见叙事。该叙事通常认为英特尔因沉迷于高利润而拒绝了苹果的低价芯片提议,是典型的“颠覆性创新”失败案例。但文章指出,这种说法存在多处事实错误和逻辑漏洞。

核心观点:

  1. 英特尔并非对手机芯片市场缺乏兴趣:在iPhone发布前,英特尔已通过XScale系列处理器(源自DEC的StrongARM技术)积极进军智能手机和PDA市场,并持续投入多年。
  2. 英特尔深谙颠覆性创新:前CEO安迪·格鲁夫与颠覆理论创始人克里斯坦森关系密切,时任CEO保罗·奥特里尼也具备相关认知。奥特里尼曾推动“超低价芯片”战略。
  3. iPhone的成功并非难以预见:苹果iPod的成功以及业界对其推出手机的预期,都表明其潜力巨大。
  4. 叙事忽略了技术竞争力:该说法未考虑英特尔的技术是否真正符合苹果需求,也低估了ARM生态系统竞争对手的实力。

XScale的发展历程与困境:

  • 起源:XScale源于DEC为低功耗设备开发的StrongARM处理器,基于ARM架构。英特尔在1997年收购DEC半导体业务时获得。
  • 英特尔的投入:英特尔将StrongARM更名为XScale,并开发了针对手机/PDA的PXA系列,包括集成DSP的PXA800F和GHz级的Monahans处理器,甚至添加了自有的“Wireless MMX”多媒体指令集。
  • 面临的挑战
    • 技术定位问题:早期未集成DSP,不适合语音密集型手机市场。
    • 生态疑虑:Wireless MMX指令集引发ARM生态系统对英特尔意图(“拥抱、扩展、消灭”)的担忧。
    • 竞争加剧:ARM的Cortex-A8核心迅速进步,在低功耗和集成度上超越XScale。
    • 销售模式不匹配:英特尔销售团队擅长PC市场,难以适应手机市场不同的需求与销售模式。
    • 内部承诺不足:市场持续猜测英特尔可能退出手机芯片业务。

奥特里尼时代与XScale的出售:

  • 战略重组:2005年奥特里尼出任CEO后,英特尔面临AMD在PC/服务器市场的强力竞争。他推行重组,聚焦核心业务,强调“每瓦性能”和客户导向。
  • 出售XScale:作为重组的一部分,英特尔于2006年(iPhone发布前夕)以600亿美元将XScale手机芯片业务出售给Marvell。此举基于以下考虑:
    • XScale业务持续亏损,竞争乏力。
    • 英特尔希望回归x86架构优势领域,认为ARM市场过于分散且利润率低。
    • 奥特里尼曾经历英特尔失败的架构项目(如BiiN),决心避免“偏离正轨”。
    • 公司更看好基于x86的“手持设备”未来和自有WiMAX无线技术。

与苹果谈判的推测:

文章基于线索推测英特尔与苹果的谈判情况:

  1. 信息不对称:苹果极度保密,可能未向英特尔透露iPhone项目细节,仅以未明确产品(可能是iPod升级)为由提出芯片需求。
  2. 产品与时机错位:谈判时(约2005年),英特尔正犹豫于XScale的未来,并已开始规划x86移动芯片。苹果需要的低功耗ARM SoC,英特尔或许无法或不愿提供合适产品。
  3. 合作关系紧张:Mac向英特尔过渡虽成功,但过程存在摩擦(如64位CPU延迟),苹果对英特尔的灵活性存在不满。
  4. 谈判未深入:由于双方缺乏热情,谈判可能仅停留在初步阶段,未进入正式竞标。因此,奥特里尼“未能中标或主动放弃”的模糊说法可能源于此。

结论:

英特尔错过iPhone并非单一的价格决策失误,而是长达近二十年的一系列战略错误、技术挑战、内部矛盾、糟糕时机以及缺乏耐心的结果。英特尔虽拥有进入手机市场所需的技术(XScale),却因急于求成、过度自信以及战略重心转向x86而将其出售。文章最后指出,即使在初代iPhone之后,英特尔在后续的“Atom时代”仍有机会,但这将是下一篇的主题。

47. Brazil top court threatens to suspend X within 24 hours (apnews.com)

巴西最高法院法官亚历山大·德·莫拉埃斯于周三下达命令,威胁将在24小时内暂停社交平台X(前Twitter)在巴西的运营,除非其所有者埃隆·马斯克在限期内任命一名巴西本地的法律代表。这是马斯克的平台与该法官长期争端的最新进展,双方此前就言论自由、与极右翼关联的账户以及平台上的错误信息等问题发生冲突,X公司声称自己是审查的受害者。

本月早些时候,X公司宣布“立即生效”撤回其在巴西的所有剩余工作人员,称德·莫拉埃斯法官曾威胁要逮捕其在巴西的法律代表。巴西最高法院周三在回复X公司政府事务账号的帖子时通知了该命令,并声明如不遵守,可能导致该社交网络在巴西的活动被暂停。

该报道同时指出,美国对言论自由的宪法保护相对宽松,而巴西则有所不同。德·莫拉埃斯法官于四月曾下令调查马斯克涉嫌传播诽谤性虚假新闻,以及另一项关于可能阻碍司法、煽动及参与犯罪组织的调查。巴西的右翼政治力量长期批评德·莫拉埃斯法官越权打压言论自由和进行政治迫害;而其支持者则认为他的行动合法,并得到法院多数支持,旨在保护民主免受威胁。

48. Tumblr to move its half a billion blogs to WordPress (techcrunch.com)

Tumblr将迁移其后端至WordPress平台。这一决定由其母公司Automattic在周三的博客文章中宣布。需要明确的是,这次迁移并非要把Tumblr转变为WordPress,而是让Tumblr运行在WordPress的后端系统上,前端用户体验不会改变。

Automattic认为此举具有多重优势:便于在两个平台间共享开发工作,使工具和功能可以同时应用于两者;同时,Tumblr也能受益于WordPress.org的开源社区开发成果。反之,WordPress也将吸收Tumblr的创意与工具积累。然而,这将是一项巨大的技术挑战,因为Tumblr目前托管着五亿个博客,被形容为“互联网史上最大规模技术迁移之一”。

文章回顾了Tumblr的历史:它于2013年被雅虎以超过10亿美元收购,但后续表现不佳。2019年被Automattic以300万美元“甩卖”收购后,仍持续亏损,每年亏损约3000万美元。尽管在埃隆·马斯克收购Twitter后曾短暂吸引用户,但并未带来显著收入增长。目前,Tumblr通过数字商品、广告和订阅服务创收。鉴于财务困境,Automattic去年已将大部分Tumblr员工调岗或裁员。

关于迁移的具体时间表和路线图,Automattic尚未公布。公司仅表示将在未来某个时间点完成后端向WordPress的过渡,并强调将利用新技术(如AI)来应对挑战。文章也提及了其他公司(如Twitter、Slack)进行过后端架构迁移的先例。

49. Memos: stick private notes on your email (www.fastmail.com)

Fastmail 新功能:Memos(邮件备忘录)

Fastmail 推出了 Memos 功能,允许用户在电子邮件上添加私人笔记,以便记录待办任务、账单状态或补充对话信息。

核心功能与特性

  • 置顶与自动保存:备忘录固定显示在邮件顶部,支持随时点击修改并自动保存。
  • 绝对私密:笔记仅对用户本人可见,不会发送给邮件对话中的其他任何人。
  • 列表直观展示:添加备忘录后,消息列表中会显示相关标识,便于在文件夹或标签中快速识别和查看。
  • 深度搜索集成
    • 备忘录文本会参与常规的全局搜索匹配。
    • 支持使用 memo:<文本> 操作符专门搜索备忘录内的特定内容。
    • 支持使用 has:memo 操作符筛选所有带有备忘录的邮件。
  • 跨客户端兼容:在 Apple Mail 或 Thunderbird 等第三方邮件客户端中,备忘录会统一存放在“Memos”文件夹内,并作为原邮件的回复形式显示。

使用前提与限制

  • 功能依赖:用户必须开启“对话分组(conversation grouping)”功能方可使用 Memos。
  • 权限限制:在多用户账户环境下,用户仅能为自己的邮件添加备忘录,无法对其他用户共享的邮件进行添加。
50. Launch HN: Patchwork (YC S24) – Automatically add structured logs to your code