2024-02-13

31 篇热帖

1. Is something bugging you? (antithesis.com)

文章摘要:《Is something bugging you?》

本文介绍了初创公司 Antithesis 的创立背景、核心技术及其在分布式系统测试领域的应用价值。

公司背景与起源

  • Antithesis 由前 FoundationDB 团队成员创立。FoundationDB 是一款分布式数据库,因其卓越的可靠性(几乎零客户报告 bug)而闻名,后被苹果收购并开源。
  • 公司在“隐身”状态下运营超过五年,专注于技术研发,而非早期市场宣传。

核心技术:确定性模拟测试

  • FoundationDB 的成功关键在于开发了一套全确定性事件驱动网络模拟系统。该系统能在单线程进程中模拟整个数据库集群,并注入网络延迟、机器故障等非确定性因素。
  • 该技术的核心优势在于:一旦发现 bug,可通过相同随机种子完美复现,极大简化调试过程。这使团队能够高效定位并修复那些罕见、难以重现的 bug。
  • 这种测试方法不仅提升了软件质量,还赋予工程团队极大的生产力——团队敢于快速重构核心系统,且无需担心引入新 bug。

创立 Antithesis 的目标

  • 创始人观察到,即使在大型科技公司,类似 FoundationDB 的确定性测试系统也极为罕见。许多团队因系统复杂性和测试困难,导致开发缓慢、生产环境 bug 修复耗时漫长。
  • 因此,他们于 2018 年创立 Antithesis,旨在将这种“确定性自主测试”的能力推广给更多软件团队,尤其是处理分布式系统的团队。

已构建的平台与服务

  • 为解决将任意软件(涉及多线程、随机数、网络通信等)变为确定性的难题,Antithesis 编写了一个虚拟化管理程序(hypervisor),可模拟确定性计算机环境,强制运行其中的软件具备确定性。
  • 平台功能:自动寻找软件中的 bug,确保所有 bug 可复现,并提供先进的调试工具。目前专注于分布式系统可靠性与容错性测试
  • 与 MongoDB、以太坊基金会(协助测试合并升级)、Palantir 等组织合作,帮助其持续测试关键系统。服务模式从早期的“特种部队”式 bug 猎杀,转变为持续集成的常态测试,缩短了 bug 发现与修复周期。

核心价值主张

  • 通过自动化确定性测试,帮助组织以更高效率达到软件的“近零 bug”状态,提升工程生产力与系统可靠性。
  • 文末邀请关注可靠性的分布式系统团队联系合作,并发布招聘信息。
2. Stable-Audio-Demo (stability-ai.github.io)
  • Stable Audio Demo网站展示了Stable Audio模型生成音频的能力,建议使用Google Chrome浏览器以获得最佳体验。
  • 提供相关资料与工具,包括论文(arXiv)、复现代码(stable-audio-tools)、评估代码(stable-audio-metrics)。
  • Stable Audio模型可生成可变长度、长形式的44.1kHz立体声音乐,包括电子、冥想、迪斯科、鼓乐等多种风格,展示了根据文本提示生成多样化音乐的能力。
  • 不同于以往的先进模型,Stable Audio还能生成高质量、44.1kHz立体声音效,如关门声、汽车和摩托经过、烟花、洞穴中脚步声等。所有音乐与音效均由同一模型生成,提示词中加注“high-quality, stereo”对提升效果有帮助。
  • 网站通过与其他先进模型对比(如MusicGen-large、MusicGen-stereo、AudioLDM2、Audiogen-medium),展示Stable Audio在立体声、采样率、音质等方面的优势,支持更高的采样率(44.1kHz)和立体声输出,而其他模型多为32kHz或48kHz的单声道或立体声。
  • 还展现了自动编码器(autoencoder)的音频重建能力,通过与真实录音比对,说明自动编码器重建音频基本与原始音频差异极小,忠实地保留了原声细节。
  • 成生成内容用于相关论文中的定性研究比较,音乐和音效的样例均基于公开文本提示(MusicCaps、AudioCaps),部分音效样例空间感较弱因提示内容所致。
3. Original WWW proposal is a Word for Macintosh 4 file from 1990, can we open it? (blog.jgc.org)

这篇文章详细记录了作者尝试打开万维网创始人蒂姆·伯纳斯-李于1990年创建的原始提案文件(一个Microsoft Word for Macintosh 4.0格式的文件)的经历。

核心目标与挑战:作者希望将这个历史性文档以高保真度打开并转换为PDF等现代格式。然而,文件年代久远(1989/1990年),兼容性成为主要挑战。

软件尝试过程

  1. Microsoft Word(在线版):无法正常打开。
  2. Apple Pages:完全无法识别该格式。
  3. Apache OpenOffice:可以打开,但格式完全丢失,图表缺失。
  4. LibreOffice:可以打开且图表显示清晰,但存在格式问题,如边距异常、字体大小不对(14pt vs 原始12pt)、页眉被错误转换为页脚等。

与现有版本的比较:作者将LibreOffice生成的PDF与CERN官方提供的1998年生成的PDF(20页)进行对比,发现主要差异包括右边距缺失、字体大小不同、页眉/页脚位置错误等。

模拟原始环境:为确认文档原始样貌,作者使用模拟器(Infinite Mac)在1990年代的Macintosh系统上运行真正的Word for Macintosh 4.0打开文件。模拟显示原始文档在A4纸上应为22页,与CERN的20页PDF不同。

手动调整与成果:基于模拟器中观察到的原始样式,作者在LibreOffice中进行了大量手动调整(设置A4纸、修正边距、将字体统一改为12pt、修复页眉等),最终得到了一个在布局上更接近模拟器中所见的ODT格式文件,并将其上传至GitHub。作者也承认,即使经过调整,输出仍与原始文件存在细微差别,这凸显了文档保存的困难。

补充信息

  • 作者最初的动机只是想获得提案中图表的高清版本用于演示。
  • 在后续更新中,作者通过模拟的Mac系统(System 7 + Word 5.1a)和一个PDF打印驱动程序(Print2PDF)成功生成了一个20页的PDF,满足了获取高质量图表的需求,并将该PDF也上传至GitHub。
  • 文章最后提及,有其他人通过不同版本的Word和调试也获得了不错的转换结果。

结论:这次尝试是开源软件(LibreOffice)的一次成功应用,但也深刻揭示了将历史电子文档进行长期保存和精确转换所面临的挑战。原始文件在34年后已难以无差错地打开和呈现。

4. Non-code contributions to open source (github.com)

开源中的非代码贡献

非代码贡献的核心价值

  • 超越代码的贡献形式:开源项目成功不仅依赖代码,还需要文档、本地化、营销、图形设计、测试、社区管理和发布管理等非代码工作。
  • 对项目可行性的关键作用:即使程序编写出色,若无文档说明其功能和用法,也难以被使用。文档、教程和支持能让代码发挥价值。根据2021年Octoverse报告,易于获取的文档可使开源和企业软件项目的生产力提升约50%。
  • 建立项目信誉:图形设计、品牌和推广有助于展示项目的健康和重要性,增强其他项目或公司将其作为依赖的信任度。

为何应参与非代码贡献

  • 技能与职业发展:非代码贡献为技术传播、图形设计、用户体验设计等非编程角色提供作品集构建机会。程序员也能通过写作和沟通等非代码技能获益,并可能转向开发者关系或产品管理等岗位。
  • 适合所有技能水平:无需计算机科学或英语学位即可开始,例如从编写文档入手。
  • 深入理解项目的途径:在直接贡献代码前,非代码贡献(如文档修复、支持响应)有助于全面理解项目。Meta AI工程师Mark Saroufim建议,从阅读并修正项目文档入手是很好的起点。
  • 长期社区参与的价值:持续的社区参与比一次性代码贡献更能建立声誉,且非编码任务通常提供更多长期机会。Astro文档负责人Sarah Rainsberger的经历证明,积极的社区参与是成为核心贡献者的关键。
  • 维护者看重的贡献类型:虽然代码贡献最受关注(62.2%),但超过三分之一的维护者更希望获得文档、设计或测试方面的支持。

如何吸引与认可非代码贡献者

吸引贡献者的策略

  • 主动邀请:维护者可主动邀请他人修复文档或参与具体任务,例如Rainsberger通过Twitter邀请用户修正文档。
  • 建立社区平台:在Discord、Gitter或Slack等平台建立社区,降低人们非正式参与项目的门槛。
  • 善用问题标签:使用“Help Wanted”和“Good First Issue”标签标记问题。报告显示,约25%的问题标记为“Help Wanted”可使贡献者增加13%,40%标记为“Good First Issue”可使新贡献者增加21%。
  • 参与专项活动:参与Hacktoberfest、Summer of Code或Season of Docs等活动。Astro在2022年Hacktoberfest专注非代码贡献,成效显著。
  • 提供指导:指导能提高项目生产力46%,并三倍增加健康文化的可能性。专职人员帮助新成员克服困难,促进他们持续参与。

认可非代码贡献者的重要性

  • 保留与吸引贡献者:认可现有贡献者以保持其动力,并吸引新贡献者加入。
  • 调整贡献标准:Astro项目已将“核心贡献者”的定义从“重大代码贡献”扩展至包含非代码贡献。
  • 多样化的认可方式:通过GitHub徽章、在文档首页展示所有贡献者头像、在Pull Request中注明共同作者等方式给予认可。
  • 经济激励:通过Open Collective筹集的资金按季度分配给贡献者,提供实质性回报。

结论

文档、支持及其他非代码贡献对维持开源项目至关重要。无论何时,参与心仪项目的非代码贡献都是有价值的开始。

5. I applied for a software role at FedEx and was asked to take a personality test (old.reddit.com)

该用户申请FedEx软件岗位时,被要求完成一项性格测试。测试通过图片选择题进行,要求用户判断图中角色是否像自己。用户未事先得知这是性格测试,仅在完成后获得了基于“大五人格”特质的评分。

用户认为测试结果完全不准确,且测试中给出的“成长领域”描述毫无根据,例如“可能因无条件完成任务而被利用”、“倾向于将截止日期置于工作质量之上”等。用户指出此类测试作为招聘筛选环节存在明显偏见,最终撤回了申请。

6. F-Zero courses from a dead Nintendo satellite service restored using VHS and AI (arstechnica.com)

任天堂已停止卫星服务中的《F-Zero》赛道,通过VHS与AI技术得以复原

任天堂曾于日本推出专为超任(Super Famicom)设计的卫星附加硬件“Satellaview”,该服务承载了许多极其短暂、易消失的游戏内容,因此成为游戏保存工作者的重要目标。其中就包括任天堂自家游戏《F-Zero》的相关内容。这款影响深远的SNES赛车游戏曾在1996至1997年间,通过Satellaview进行了为期八周的每周广播,部分内容还配有现场“Soundlink”CD音质的音乐与旁白。广播结束后,用于存储游戏数据的记忆卡会显示为空,尽管技术上数据仍存在。若在下一次广播开始时仍使用同一张1MB记忆卡,旧数据将被覆盖,且广播从未重播。

据Press the Buttons报道(及Did You Know Gaming的详细视频介绍),一些未被使用的记忆卡被找到,其中的数据被用于复原部分内容。属于多周活动“Grand Prix 2”的部分赛道此前从未被发现,尽管曾有5000美元的悬赏及大量努力。然而,令人惊讶的是,后期广播中的10条赛道竟通过VHS录像、机器学习工具以及逐像素的手动重制,实现了逆向工程复原。参与复原的团队表示,其结果“准确率超过99.9%”,现可作为补丁应用到现有的《F-Zero》ROM中。

这个被称为“F-Zero Deluxe”的补丁版本,在原有四辆赛车的基础上新增了四辆。它包含了两个全新的“BS-X”联赛,收录了所有复活的Satellaview赛道。此外,还加入了“幽灵数据”功能——即允许玩家与自己之前的行驶记录进行竞速,这一功能由《F-Zero》系列开创并被后续众多赛车游戏借鉴。该版本甚至附带了包装盒美术设计与说明书。这是游戏保存领域的一项显著成就,但也令人担忧任天堂及其法务部门可能会采取行动。

7. Neural network training makes beautiful fractals (sohl-dickstein.github.io)

神经网络训练产生美丽的分形

核心发现

作者发现,神经网络训练的超参数(如学习率)景观中,训练成功(收敛)与失败(发散)的边界具有复杂的分形结构。通过可视化实验,每个像素代表一次训练运行,蓝色/绿色表示收敛,红色/黄色表示发散。最好的超参数通常位于该边界附近,而该边界在放大后展现出无限精细的细节。

与分形生成的相似性

神经网络训练与分形生成有核心共同机制:反复迭代一个函数。例如:

  • 曼德博集合通过迭代函数 (f(z; c) = z^2 + c) 生成,其分形是参数 (c) 空间中迭代收敛与发散的边界。
  • 神经网络训练通过迭代梯度下降步骤更新参数,即迭代函数 (f(\theta; \eta) = \theta - \eta g(\theta))((\eta) 为学习率,(\theta) 为参数,(g) 为梯度)。 两者都在超参数空间中产生分形边界,但神经网络的迭代函数复杂得多(参数量可达万亿级),因此分形更“有机”且对称性不明显。

实验普遍性

作者通过多种配置验证了分形结构的普遍性:

  • 改变网络架构(如使用恒等函数、ReLU激活函数)
  • 改变训练设置(如数据集大小为1、小批量训练)
  • 可视化不同的超参数组合(如初始化权重均值与学习率) 不同配置下分形外观不同,但结构始终存在。

与元学习的联系

这种分形景观解释了元学习(学习超参数或优化算法)的挑战

  • 元损失函数(评估超参数好坏的指标)在超参数空间中具有混沌、分形特性。
  • 在任意尺度上,微小的超参数变化都可能导致训练结果剧变,使得通过梯度下降优化超参数变得困难且高方差。

技术注释

  • 基础实验使用一个简单的两层全连接网络(16个隐藏单元,tanh激活,均方误差损失),对输入层和输出层使用不同学习率。
  • 分形细节受数值精度限制(如float64精度),过深缩放时会出现像素块状。
  • 代码已开源,包含在Colab笔记本中。
8. Mastering Programming - by Kent Beck (2016) (tidyfirst.substack.com)

Kent Beck的文章《掌握编程》总结了高效程序员的工作模式,核心在于通过扩展大脑能力来解决更复杂的问题。大师程序员通过减少同时处理的问题数量,而非增加,来达成更大目标。关键在于将问题细分,使整合各部分解决方案比整体解决更容易。

以下是高效程序员优化时间的关键模式:

  • 分片:将大项目切成小块,并根据需求调整顺序,以适应具体场景。
  • 一次专注一件事:避免为减少开销而合并反馈循环,否则可能导致调试成本更高。
  • 分阶段优化:先使代码可运行,再使其正确,最后提升性能(体现了一次专注、分片和简单变更原则)。
  • 简单化变更:面对困难变更时,先将其简化(可能通过分片、专注、隔离等),再执行。
  • 集中化:若需修改多个部分,先调整代码结构,使变更集中于一处。
  • 隔离化:若仅需修改某元素的部分内容,先提取该部分以便整体变更。
  • 基准测量:项目开始前先测量现状,避免盲目修复,确保改进有效。
  • 预测结果:运行代码前明确预测其行为。
  • 具体假设:程序出错时,明确阐述可能原因再修改;若有多个假设,需做鉴别诊断。
  • 简化复现:报告错误时提供最短复现步骤,隔离错误时用最短测试用例,使用新API时从最基础示例开始。
  • 多尺度视角:灵活切换视角,可能问题属于设计层面而非技术层面(这常是人员问题)。
  • 对称性:将相近事物分解为相同和相异部分。
  • 美学导向:美感是优化方向,但有时打破美学(如将函数内联为一团)也能解放思维。
  • 节奏把握:在合适时机行动,避免过早消耗精力;行动时则保持专注强度。
  • 权衡决策:所有决策都涉及权衡,了解决策依赖因素比当前选择更重要。
  • 记录旁支想法:及时记录 tangential 想法,完成当前任务后再回顾。
  • 喂养想法:想法如易受惊的小鸟,需及时关注;用数据快速验证想法,而非因缺乏自信而否定。
  • 80/15/5法则:80%时间用于低风险/合理回报的工作,15%用于相关高风险/高回报工作,5%用于兴趣驱动的实验。培养接班人接手你的80%工作,你的15%或5%实验可能将成为新的80%,形成持续改进循环。

整体脉络从风险管理与时间控制逐步过渡到善用整个大脑进行风险探索与快速决策

9. Sparkle: A software update framework for macOS (github.com)

Sparkle 是一个为 macOS 设计的安全可靠的软件更新框架。

Sparkle 2 的主要改进:支持应用程序沙盒化、自定义用户界面、更新外部捆绑包,并采用了更快、更可靠的安装架构。

核心特性

  • 无缝集成:使用应用自身的图标和名称,不显示 Sparkle 品牌。
  • 安全:通过 EdDSA 签名和 Apple 代码签名验证更新,支持沙盒应用。
  • 高效:支持增量更新(仅修补更改的文件)和原子化安全安装。
  • 易于安装:无需在应用中编写代码,仅需在 Web 服务器上提供静态文件。
  • 可定制:允许插入自定义更新 UI。
  • 灵活:支持更新应用程序、包安装器、偏好设置面板和其他插件。
  • 智能处理:自动处理权限、隔离和必要的身份验证提示。
  • 标准格式:使用 RSS 格式的 Appcast 文件发布更新信息。
  • 后台静默更新:支持用户选择在后台自动下载并安装所有更新。
  • 高级发布控制:支持更新频道、分阶段发布,并可将更新标记为关键或重大更新。

技术要求

  • 运行时:macOS 10.13 或更高版本。
  • 构建:需要最新大版本的 Xcode。
  • 服务器:需要 HTTPS 服务器来提供更新。

使用与故障排除

  • 入门指南中详细说明了配置步骤,无需编写代码。
  • 遇到问题时,应检查 Console.app 中应用日志下的 Sparkle 详细信息,日志通常会提供问题解决方案。
  • 推荐使用 generate_appcast 工具来自动生成 Appcast 文件、正确签名和增量更新。
  • 确保配置文件中的更新 URL 有效且使用现代 TLS 协议。

开发相关

  • 默认情况下不导出 API 符号,公共 API 需使用 SU_EXPORT 宏声明。
  • 构建分发包通常无需进行,除非修改 Sparkle 本身;可通过 make release 命令或 Xcode 中的 Distribution scheme 构建。
10. A Git client for simultaneous branches on top of your existing workflow (gitbutler.com)

GitButler

目的: GitButler 是一个 Git 客户端,旨在让用户在现有工作流的基础上同时管理多个分支,提高版本控制的灵活性和效率。

关键功能: 支持同时处理分支,简化多分支操作,并集成到现有的 Git 工作流中,无需改变用户习惯。

结构: 作为一个应用程序或工具,GitButler 提供直观的界面来处理分支任务,但具体实现细节未在内容中详述。

11. Abandoned villages of Hong Kong (www.cnn.com)

摄影师Stefan Irvine耗时12年,记录了香港新界等地区被遗弃的村庄景象。这些村庄曾存在数百年,但在20世纪50-60年代香港工业化进程中,村民为谋求更好的工作机会大量迁入市区,导致村庄逐渐荒废。如今,这些废弃的房屋被树木藤蔓侵蚀,墙壁坍塌,地板腐朽,呈现出自然逐渐收回领地的景象。

Irvine在探索中面临建筑结构危险和村犬威胁等挑战。他通过图书馆研究联系到一些与村庄有渊源的人,如村民后代,并在作品中纳入了他们的回忆文章,凸显了人与故土的情感纽带。

并非所有村庄都完全废弃。一些村庄如荔枝窝和沥源仍有少量居民居住。政府已开始投资保护部分村庄的遗产价值(如荔枝窝),并鼓励旅游活化。盐田仔等完全废弃的村庄则通过夏季艺术节进行活化利用。

Irvine认为,香港社会正产生一种保存建筑遗产的情感需求。他的摄影项目旨在永久记录这些遗产,既是对社区消逝的见证,也是对自然力量的礼赞,提醒人们万物变迁、自然终将重占主导的永恒规律。其摄影集与配套展览于2024年2月在香港展出。

12. FCC: Telcos must now tell you when your personal info is stolen (www.theregister.com)

FCC新规强化电信数据泄露报告要求

美国联邦通信委员会(FCC)已发布最终规则,要求电信运营商在发现数据泄露事件后,必须在七天内向FCC、联邦调查局(FBI)和美国特勤局报告。该规则将于2024年3月13日生效,适用于所有美国电信运营商及电信中继服务提供商。

主要变化:

  1. 报告时限缩短

    • 向监管及执法机构的报告期限从原先规定缩短为发现事件后7天
    • 取消了向消费者通知前必须等待7天的规定,要求运营商在确认可能发生泄露后30天内通知受影响客户。运营商在“有更多可能 than not”的证据表明发生泄露时,即应启动通知程序,无需等到调查完全结束。
  2. 扩大数据泄露定义范围

    • 除原先规定的客户专有网络信息(CPNI)(如通话记录、账单信息)外,新规将个人身份信息(PII) 纳入强制报告范围。
    • 新增的必须报告数据包括:姓名、政府颁发的身份证件号码、用于认证的数据、电子邮件地址/密码、生物识别数据。即使是已被匿名化、但通过其他泄露数据可重新关联到个人的信息,也需报告。
    • “泄露”的定义扩展至包括“无意中的访问、使用或披露”,例如近期Verizon报告的63,000名员工记录意外暴露事件。
  3. 通知豁免条款:运营商若能合理确定泄露“不太可能对客户造成损害”,则无需通知用户。

背景与争议

  • 此次更新是FCC对其已有16年历史的数据泄露报告规则的首次重大修订。
  • 该规则是美国联邦政府近期加强数据泄露报告监管的一部分,与联邦贸易委员会(FTC)、证券交易委员会(SEC)等机构陆续出台的新规同期推进。
  • 行业组织(如蜂窝电信行业协会CTIA)曾提出反对,担忧会造成监管重叠,但FCC认为这些反对意见“缺乏说服力”。
  • 国会中也存在对其他机构(如SEC)快速报告要求的质疑,但拜登政府表示将维护这些规定。
  • 未来,网络安全与基础设施安全局(CISA)预计将出台相关草案,可能旨在协调各机构的报告标准,减少企业合规负担。
13. Wall found at bottom of Baltic Sea 'may be Europe’s oldest megastructure' (www.theguardian.com)

研究人员在德国波罗的海沿岸的梅克伦堡湾海底发现了一道史前石墙,这可能是欧洲已知最古老的史前巨型建筑。

该石墙由“闪光墙”命名,沿海底延伸近一公里。研究团队在一次学生考察期间使用多波束声呐系统从研究船上偶然发现了这一结构。近距离检查显示,它由约1400块小石头连接约300块更大的巨石构成,许多巨石重量超出当时人类群体的搬运能力。石墙大部分高度不足1米,目前位于水下21米深处,但研究人员认为它建于1万多年前,当时该区域是陆地上的湖泊或沼泽边缘。石墙总重量超过142吨,其角度变化和与大石块的连接方式表明小石堆是被刻意放置以连接巨石的,这排除了自然形成的可能性。

研究团队推测,这道石墙可能是史前猎人的驱赶通道。当时人类可能利用这道墙与另一道墙或湖岸形成人工瓶颈,迫使驯鹿群进入不利地形,便于猎人捕猎。另一道并行的石墙可能仍埋藏在海底沉积物中。

如果石墙确实是狩猎建筑,其建造时间应在1万多年前,并在约8500年前因海平面上升而被淹没。研究人员指出,这使得“闪光墙”成为世界上最古老的狩猎建筑之一,并可能是欧洲最古老的人造巨型结构。未来计划重返该地点,通过重建古地貌、搜寻沉积物中的动物骨骼和人类狩猎工具(如箭头)来进一步验证这些推测。

14. Nvidia's Chat with RTX is an AI chatbot that runs locally on your PC (www.theverge.com)

Nvidia发布了早期版本的本地AI聊天应用Chat with RTX,它允许用户在个人电脑上运行一个AI聊天机器人。

核心功能与要求:

  • 该应用可在搭载至少8GB显存的RTX 30或40系列GPU的PC上本地运行。
  • 用户可以输入YouTube视频链接个人文档,机器人能基于这些数据生成摘要或回答相关问题。
  • 其运行依赖于本地安装的Mistral或Llama 2模型,并利用RTX GPU的Tensor核心来加速查询。

实际测试中的优点:

  • 处理速度快:响应近乎即时,没有云端聊天机器人的延迟。
  • 数据分析有效:在处理法律文档(如FTC诉微软案文件)时,能快速提取和总结关键信息,对记者或研究人员有帮助。
  • 文档支持:能很好地处理和分析PDF等文档中的信息。

当前存在的明显缺点与限制:

  • 属于早期演示版:应用体验粗糙,安装过程耗时约30分钟,占用近40GB磁盘空间,运行时会消耗大量系统内存。
  • 稳定性与准确性问题
    • 测试中出现了下载错误视频字幕的bug。
    • 处理大量文档(如25000份)可能导致应用崩溃。
    • 回答中的来源引用有时不准确
  • 功能局限
    • 不具备上下文记忆,无法基于前一个问题进行追问。
    • 会在被索引的文件夹中创建JSON文件,不建议索引整个“文档”文件夹

总结: Chat with RTX是一个技术演示,展示了未来在本地PC上运行AI聊天机器人分析个人数据的潜力,尤其适合那些不愿订阅云端AI服务的用户。然而,它目前存在安装复杂、不稳定、功能有限等问题,尚不具备作为成熟应用广泛使用的条件。

15. US rail safety legislation stalled one year after East Palestine Ohio disaster (www.wlbt.com)

美国铁路安全立法停滞:俄亥俄州东巴勒斯坦事故一年后进展甚微

事故背景与立法提案

2023年2月3日,一列载有有毒化学品的诺福克南方货运列车在俄亥俄州东巴勒斯坦镇附近脱轨,导致空气、水和土壤污染,超过1000人被迫疏散。事故引发全国对铁路安全的关注,国会两党议员随后提出多项铁路安全法案,旨在:

  • 强制部分货运列车配备双人乘务组
  • 更新检查法规
  • 大幅提高违规罚款

立法停滞现状

尽管参议院版本法案曾通过委员会审议,但截至2024年2月事故一周年,两项法案自2023年5月后均无实质进展。俄亥俄州民主党众议员玛西·卡普图尔(Marcy Kaptur,美国国会历史上任期最长的女性议员)和参议员谢罗德·布朗(Sherrod Brown)均指出立法受阻原因:

  • 铁路行业政治游说力量强大,在相关委员会中形成阻力
  • 行业协会和企业反对具体条款,如乘务员人数和检查要求
  • 行业将利润置于公共安全之上

铁路行业回应

美国铁路协会(Association of American Railroads)通过书面声明表示:

  • 承诺与政策制定者合作提升安全
  • 声称从未反对《铁路安全法案》,但指出法案中乘务员规定和检查要求存在“挑战”
  • 列举事故后行业自主改进措施:
    • 培训全国数千名急救人员
    • 扩大危化品实时信息系统访问权限

其他未解安全问题

  1. 铁路道口封锁:持续停靠的列车阻塞交通,延误急救响应,甚至导致儿童爬越列车上学
  2. 基础设施缺陷:卡普图尔呼吁拜登政府召集利益相关方,利用基础设施资金进行系统性改革,批评铁路公司“未能满足国家未来需求”

核心争议点

立法僵局反映出公共安全监管与行业自主权的根本矛盾:议员强调需要强制性安全标准,而行业主张通过自身倡议和自愿合作改进安全。

16. Time Series Forecasting vs Regression: An informal guide (www.amorphousdata.com)

时间序列预测与回归分析的区别与应用

历史数据预测未来结果在收入预测、天气预报、股市趋势、体育赛事预测等领域至关重要。构建预测模型的方法主要可分为时间序列预测和回归分析,二者思路与目标不同。

时间序列预测

  • 核心:基于按时间顺序记录的数据,利用其时间模式(如趋势、季节性)预测未来值。
  • 示例:用电需求预测中,使用简单移动平均(SMA)计算过去30天的平均需求,并逐日更新,以适应近期波动。
  • 优点:SMA简单直观,适用于快速估算和观察总体趋势。
  • 局限性:SMA可能平滑极端值,对突变或异常点反应滞后。
  • 进阶方法:指数移动平均(EMA)赋予近期数据更高权重以提高响应性;自回归整合移动平均(ARIMA)适用于具有季节性的数据。

回归分析

  • 核心:强调输入变量(自变量)与输出变量(因变量)之间的数学关系,而非单纯依赖时间模式。
  • 示例:用电需求预测中,以历史需求为因变量,每日温度、星期几等为自变量构建模型,捕捉外部因素的影响。
  • 优点:能纳入外部因素,提供更细致、 context-specific 的预测,提升准确性和可解释性。
  • 局限性:复杂度高,依赖特征工程(变量选择与编码),这对模型性能影响显著。

结合协变量的时间序列预测

  • 核心:在传统时间序列模型中加入协变量(外生变量,如经济指标、环境条件),融合两种方法的优势。
  • 示例:先计算历史SMA,再根据温度协变量计算调整因子,最终用调整后的SMA预测需求。
  • 挑战:特征工程更复杂,需将协变量对齐到时间序列(如选择日平均温度还是特定时刻温度),且模型需持续更新以适应数据变化。

其他预测策略

  • 包括Facebook Prophet、深度学习模型(如LSTM)等,但通常需要大量工程工作才能超越标准回归或ARIMA方法。
  • 集成方法(如Uber结合指数平滑与神经网络的模型)可在关键场景提升精度。

总结

  • 时间序列预测专注于时间维度的模式提取;回归分析聚焦变量间的关系建模。
  • 二者均能预测数值结果,但原理和适用场景不同。理解其差异是应用预测模型的第一步。
17. Visual calculus (en.wikipedia.org)

视觉微积分是由Mamikon Mnatsakanian(简称Mamikon)发明的一种方法,用于解决多种积分问题。该方法能通过直观的几何构造,避免复杂计算即可求解许多问题。Mamikon与Tom Apostol在2013年合著的《几何新视野》中详细描述了该方法。

核心定理
Mamikon于1959年还是本科生时,通过解决一个经典几何问题(已知与内圆相切的弦长,求圆环面积)发展出了该方法。其关键洞察是:将构造圆环时使用的所有定长切线平移至切点重合,会形成一个已知半径的圆盘。由此得出Mamikon定理
切线扫掠的面积等于其切线簇的面积,与原始曲线的形状无关。

应用示例

  1. 圆环面积:传统方法需使用勾股定理代数计算,而Mamikon方法通过将切线平移聚拢为圆盘,直接得出面积等于以弦长为直径的圆面积,与内外半径无关。
  2. 摆线面积:生成摆线的圆的半径为 (r),其切线簇构成半径为 (r) 的圆,面积为 (\pi r^2)。包围摆线的矩形面积为 (4\pi r^2),因此摆线面积为 (3\pi r^2)(生成圆面积的3倍)。

方法特点

  • 将曲线的切线系统转化为一个更简单的几何图形(切线簇),通过比较面积解决问题。
  • 依赖于几何等效性,避免复杂积分或代数运算。
  • 可推广至非圆曲线,且传统几何方法不易证明其普遍性。

相关概念
该方法与卡瓦列里原理、速度图、《机械定理方法》、帕普斯重心定理、面积仪及特里斯坦·尼达姆的视觉复分析等概念存在关联。

18. Nokia made too many phones (textquery.app)

诺基亚的手机型号过多:一项失败的市场策略

核心问题:产品线过度膨胀

2000-2010年间,手机市场竞争激烈,但诺基亚的策略尤为引人注目。仅在2005年一年,诺基亚就推出了超过50款手机型号,这一数量超过了苹果iPhone在长达16年历史中发布的所有型号总数。虽然许多诺基亚机型之间差异甚微,但该公司仍在创造大量荒谬的产品类别。

产品多样性:从功能到设计的极端分化

诺基亚手机定位各异,涵盖商务、音乐、拍照等不同中心。其产品在显示技术上从1位单色屏幕到24位AMOLED屏幕都有涵盖。机身设计也包括直板、翻盖、滑盖、全键盘,甚至口红型等奇特形态。对于某些型号,公司彻底抛弃了传统设计规范。

核心矛盾:差异化泛滥的后果

虽然不同型号本身并非问题——笔记本电脑、显示器等产品也因需求不同而存在各种规格——但诺基亚的问题在于过度实验。这种产品多样性不仅导致了用户体验的不连贯,还几乎使建立统一的应用市场变得不可能。

历史背景与战略根源

诺基亚在1960年代曾是一家从卫生纸到轮胎什么都卖的集团企业,于1990年代成功转型为电信公司。然而,市场细分早已深入其战略基因。其2005年年报明确写道:

对于诺基亚,有竞争力的移动设备产品组合意味着为所有主要消费群体和价格区间提供广泛、平衡、具有商业吸引力的产品,这些产品需具备吸引人的特性、功能和设计,并得到诺基亚品牌、质量及竞争性成本结构的支持。

组织结构:分裂的研发体系

这一战略直接体现在诺基亚的组织结构中。其移动设备部门下设三个主要子部门:

  1. 移动电话部
  2. 多媒体部
  3. 企业解决方案部

每个部门内部进一步细分,各自独立开发手机型号以抢占所分配的市场。

移动电话部为例,其下设五个独立单位:

  • 大众化单元:专注于中端产品,平衡价格、功能与风格(如Nokia 3250)。
  • 入门级单元:针对移动渗透率较低、有增长潜力的市场(如Nokia 1100)。
  • 生活方式单元:针对愿意为更高品质材料、设计和功能支付溢价的消费者,专注于顶级产品(如Nokia 8800)。
  • CDMA单元:与运营商合作,开发基于CDMA技术的机型。
  • Vertu单元:专注于奢侈手机品类,致力于打造高端通讯产品。

多媒体部专注于“创造、访问和消费多媒体”功能的手机,包括N系列和XpressMusic系列。 企业部则面向商务用户,包括E系列和9300等机型。

战略失误:内部竞争与研发分散

数十个细分部门各自推出多款机型以抢占市场。尽管诺基亚在研发上投入巨大,但这种结构使得无法产生能够整体提升手机水平的凝聚性研究,而这些研究本可为几年后iPhone的出现铺平道路。最终,诺基亚在智能手机大战中落败。

与竞争对手的鲜明对比

乔布斯回归苹果后首先采取的行动之一,就是取消独立的“业务部门”,按职能重组公司。有趣的是,诺基亚最终屈服于曾在1997年几乎摧毁苹果的同一糟糕策略。诺基亚将智能手机市场视为由多个类别组成,而非一个整体,而这正是其失利的关键。

19. Aya: An open LLM by 3k independent researchers across the globe (cohere.com)

Aya:全球独立研究人员打造的开放大语言模型

Aya 是由 Cohere Labs 发起的一项全球开放科学倡议,旨在汇聚全球研究人员,共同推动多语言人工智能的前沿发展,弥合世界各地人群与文化之间的鸿沟。

最新发布:Tiny Aya Tiny Aya 是一个紧凑的多语言人工智能模型家族,可在任何设备上本地运行。其基础模型拥有 33.5 亿参数,支持超过 70 种语言,并包含针对不同区域的特化变体,在无需依赖云服务的情况下提供强劲性能。用户可根据实际场景需求,选择全球均衡型或区域特化型模型。

  • Tiny Aya Global:针对多语言性能均衡优化。
  • Tiny Aya Earth:在非洲和西亚地区的语言上表现最强。
  • Tiny Aya Water:在亚太和欧洲地区的语言上表现最强。

Aya 的其他模型与发展 Aya 最初作为机器学习领域最大的开放科学协作项目诞生,汇聚了全球研究人员社区,为未来的创新奠定了强大基础。这一初始努力为后续的研究倡议和额外模型的开发铺平了道路,不断拓展人工智能的可能性边界及其所见的世界。

核心特性

  1. 开放协作与透明性:Aya 的模型和数据集采用开放许可,促进全球协作,使研究人员能够进行审计、扩展和负责任地创新。这种透明性加速了多语言人工智能的集体进步,并确保了所有人皆可访问。
  2. 资源高效创新:Aya 利用模块化训练和精简的模型设计,在不影响性能的前提下最大限度地降低计算成本。这种效率使得先进的 AI 开发民主化,让前沿研究对多元社区变得可行。
  3. 高质量数据集:Aya 优先考虑多样化的数据和自适应架构,以在高资源和低资源语言之间提供公平的性能。其指令调优管道确保了跨语言任务的无缝泛化,打破了全球 AI 实用性的障碍。

学术认可 Aya 项目获得了斯坦福大学 HAIF(2024年精选版本)的认可,其相关论文《Aya Dataset: An Open-Access Collection for Multilingual Instruction Tuning》和《Aya Model: An Instruction Finetuned Open-Access Multilingual Language Model》分别在 ACL 2024 上获得最佳论文奖。

体验 Tiny Aya 用户可使用拥有 33.5 亿参数的 Tiny Aya 模型在本地运行多语言人工智能,该模型覆盖超过 70 种语言,并提供针对特定区域优化的性能。

20. The Catalogue of UK Entrances to Hell (www.entrances2hell.co.uk)

《英国地狱入口目录》网站内容总结

该文本为“entrances2hell”网站的首页或简介内容,主要信息如下:

  • 网站主题:提供一个关于英国及其周边地区“地狱入口”(Entrances to Hell)的目录。
  • 网站特点:该目录内容处于持续更新状态。
  • 本周热点:本周最受欢迎的“地狱入口”是“Quetty Orarna”。
  • 页面导航:网站包含“您的邮件(Your emails)”、“首个入口(First entrance)”以及“新闻页面(News Page)”等板块或链接。
  • 版权信息:网站域名为 entrances2hell.co.uk,版权归 J H Irvine 所有,版权年份为2002年。
21. So You Think You Know Git – Git Tips and Tricks by Scott Chacon (blog.gitbutler.com)

Git技巧与窍门:作者Scott Chacon的经验分享

本文基于Scott Chacon在FOSDEM 2024的演讲,旨在介绍一些鲜为人知或新近推出的Git功能。作者发现,尽管Git已成为主流,但许多开发者(尤其是新一代)对其高级特性了解有限,这既是因为他们从未从其他版本控制系统迁移,也是因为Git自身近年来有所更新。

文章指出,作者原以为大家都已熟悉高级Git操作,但近期演讲经历显示,仍有大量用户对许多功能不熟悉。因此,他计划撰写一个系列文章,面向中高级Git用户,涵盖那些因使用习惯或功能较新而可能被忽略的内容。

系列共三篇短文,主题分别为:

  1. 经典实用配置:介绍长期存在但可能未被充分利用的Git配置选项。
  2. Git的新特性:探讨Git近年新增的一些微妙但实用的功能。
  3. 大型仓库与单体仓库:针对超大规模代码库和单体仓库的管理技巧。

作者Scott Chacon是GitHub和GitButler的联合创始人,著有《Pro Git》一书,长期致力于Git工具与版本控制领域的创新与分享。

22. The dating app paradox (www.npr.org)

约会应用行业正面临“约会应用悖论”:其商业模式要求尽可能吸引用户并从中盈利,但应用的真正成功(帮助用户找到长期伴侣)却意味着用户会离开平台,从而导致公司失去客户。这种根本矛盾使得行业陷入困境,股价下跌、用户流失,包括Match Group和Bumble在内的多家公司CEO近期辞职。

Match Group通过收购和孵化策略,目前管理着包括Tinder、OkCupid、Hinge等在内的至少45款约会应用。尽管研究显示约十分之一的美国伴侣是通过约会应用结识的,但行业的盈利模式与用户体验之间存在紧张关系。以Hinge为例,其标语“设计来让你删除”恰恰体现了这种矛盾:公司公开宣传以“失去客户”为成功标志,这与商业利益背道而驰。

随着股价下跌,约会应用公司正致力于推动更多免费用户转为付费用户。许多用户抱怨应用体验因此变差,例如Hinge的免费版本被指责将优质匹配对象隐藏在付费墙后。这种现象被记者Cory Doctorow称为“enshittification”,即平台初期为扩大规模而优化体验,后期为盈利而损害体验。

历史上,用户可通过转向竞争对手应用来应对体验下降,但目前市场竞争似乎失效。TikTok用户bianca指出,当Tinder变差后用户转向Bumble,再转向Hinge,但如今缺乏能取代Hinge的新应用。部分原因可能是Match Group等公司通过收购竞争对手(如2018年收购Hinge)限制了市场竞争。

Match Group否认其收购策略损害竞争,也否认存在“约会应用悖论”,声称其商业目标与帮助用户建立有意义关系的使命一致。然而,公司盈利模式仍依赖于用户持续使用应用,而非完全脱离平台。

文章引入经济学中的“逆向选择”理论来解释约会应用市场的恶化。如同“柠檬市场”中二手车买家因信息不对称而压低价格,导致优质车辆退出市场,约会应用中也可能出现劣质用户(如不真诚的约会者)驱逐优质用户的恶性循环。优质用户在经历糟糕约会后可能离开应用,降低整体用户质量。

可能的解决方案包括建立类似汽车历史报告(Carfax)或Airbnb评分系统的信息机制,以减少信息不对称。但约会场景中,此类系统可能面临隐私和接受度挑战。

尽管技术扩大了潜在匹配范围,约会本身可能仍然充满挑战。行业需在商业利益与用户体验之间找到平衡,否则用户将持续面临“约会应用悖论”带来的困境。

23. What If I’m Wrong? (2023) (behavioralscientist.org)

文章《What If I'm Wrong?》节选自丹尼尔·丹尼特2023年的著作,探讨了优秀思想者应如何面对自身可能存在的错误。作者通过个人经历和具体事例,阐述了其方法论的转变以及对“错误”的积极思考。

1. 研究方法的演变:从亲力亲为到分布式理解 作者年轻时会为理解艰深文献而耗费大量时间,直至完全掌握论点。如今,他选择更高效的方式:对难以理解的材料快速浏览,并依赖可信社区或他人来帮助消化复杂内容。他强调“分布式理解”的有效性,但前提是身处一个能有效调动相关专业知识的交流共同体中。

2. 提问“如果我错了?”的重要性 作者认为,好的思考者会经常自问“如果我错了?”,就像好医生会经常对照希波克拉底誓言检视自己的实践一样。这并非形式主义,而是一种必要的反思。

3. 应对错误的具体策略与实践

  • 借助他人纠错:作者借鉴汤姆·索亚刷墙的创意,邀请学生参与自己书籍终稿前的审阅,鼓励他们指出错误、挑战论点。尽管学生并未获得金钱报酬,但会获得致谢和赠书,这种安排让各方都感到满意。
  • 转化“失败”为贡献:作者鼓励学生勇敢尝试提出“大想法”(如反驳某个权威观点)。即使在写作过程中发现其中存在致命缺陷,也并非徒劳。此时,可以调整论文方向,清晰地论证为何这个看似诱人的思路是错误的“死胡同”。证明某条路走不通,本身就是对所在领域的真实贡献。这一策略对整个职业生涯同样适用:先大胆尝试,若成功,可深化理论;若失败,则能以有力的方式证伪自己的假设,这种由初始支持者完成的反证往往更具说服力。
  • 利用反对者推动科学:作者以“智能设计”背后的“发现研究所”为例。他公开嘲笑该机构将资源用于宣传而非科学研究,并建议他们资助真正的研究来试图推翻进化论。他认为,如果该研究所资助的年轻科学家(他们自身坚信智能设计)专注于寻找进化论无法解释的“不可还原的复杂性”,他们最终可能会失败,但其努力过程会为进化论揭示出意想不到的、精妙的“起重机”(即进化机制)。严肃的、以失败告终的证伪尝试,恰恰是优秀理论保持活力的养分。

4. 可能整体性错误的历史镜鉴 作者承认自己的整个视角可能是“一个巨大的错误”。他以笛卡尔为例,笛卡尔曾构建了一个宏大、自洽但根本错误的宇宙理论(《世界体系》与《哲学原理》),最终被牛顿的理论彻底推翻。笛卡尔的理论即使现在看来,其自洽程度也令人印象深刻,很难想象另一个同样自洽却完全错误的理论。这说明宏大而自洽的理论完全可能是错的。作者借此自省:自己的观点同样可能错,但得益于众多他所尊敬的思想家的认同,以及自己内心持续的怀疑态度,他能将这种疑虑控制在可控范围内继续前行。

核心主旨:文章通过作者从埋头苦读到借助社群、从恐惧犯错到善用错误的方法论转变,倡导一种开放、反思的认知态度。它指出,勇于质疑自身、将潜在错误转化为认知进展、甚至利用反对力量进行检验,都是优秀思考者不断进步、理论保持生命力的关键。

24. vDPA: Support for block devices in Linux and QEMU (stefano-garzarella.github.io)

vDPA 是一种遵循 virtio 规范进行数据传输、但具有供应商特定控制路径的设备类型。它可以是物理硬件,也可以是软件模拟。其核心优势在于统一的软件栈,通过内核中的 vDPA 父驱动程序仅处理控制路径,而为数据路径提供两种接口:

  • vhost-vdpa:供用户空间或客户机 virtio 驱动使用(如在 QEMU 中运行的虚拟机)。
  • virtio-vdpa:供宿主机上的裸机或容器化应用使用。
  • vdpa netlink:用于实例化设备和配置 virtio 参数的管理接口。

近年来,vDPA 的支持已从网络设备扩展到块设备。主要应用场景是利用硬件(如 SmartNIC 或 DPU)直接模拟 virtio-blk 设备,并支持不同的网络后端(如 Ceph RBD 或 iSCSI)。vDPA 的抽象也使得软件加速器得以实现。

在 QEMU 中使用 vDPA 块设备涉及快路径慢路径

  • 慢路径:当 QEMU 需要处理请求(如实时迁移或 I/O 限制)时,会拦截请求并通过 libblkio 库中的 virtio-blk-vhost-vdpa 驱动转发给 vDPA 设备。QEMU 7.2 起支持此驱动。
  • 快路径:当 QEMU 无需干预时,vDPA 设备可直接暴露给客户机,绕过 QEMU 模拟,以获取最佳性能。

vDPA 的另一大优势是支持硬件和软件实现

  • 内核软件设备:如 vdpa-sim-blk 模块,用于开发和调试。
  • 用户空间设备:通过 VDUSE 实现,可与 QEMU 存储守护进程(QSD)配合,将任何 QEMU 支持的磁盘镜像导出为 vDPA 设备。

设备管理方面,使用 iproute2 中的 vdpa 工具进行管理。从 Linux 5.17 起支持 driver_override,允许在运行时动态重新配置设备总线。

文章提供了多个使用示例,包括:

  1. 使用 VDUSE 和 QSD 为宿主机应用和容器提供 qcow2 镜像。
  2. 启动一个使用 vDPA 设备的虚拟机,展示了如何通过 driverctl 切换设备总线,并详细说明了在 QEMU 中配置 virtio-blk-vhost-vdpa(慢路径,支持块层功能)和 vhost-vdpa-device-pci(快路径,高性能但无 QEMU 块层功能)的两种方式。
26. Mornington Crescent (www.isihac.net)

莫宁顿月台:游戏简介与背景

莫宁顿月台(Mornington Crescent)是一款复杂的策略游戏(等级H8),其名称源自伦敦地铁北线查令十字支线上的一个地铁站,位于尤斯顿和卡姆登镇之间,属于Travelcard第2区。该站位于卡姆登高街南端,与汉普斯特德路和埃弗肖尔特街交汇。

该车站曾关闭多年,于1998年4月27日由广播节目《I’m Sorry I Haven’t a Clue》的常规演员团队重新启用。2002年,车站内安装了一块纪念已故演员威利·拉什顿的牌匾。

游戏核心机制与特点

游戏的关键设定源于地铁线路的特殊结构:

  • 北线的双重分支:查令十字支线(Charing Cross branch)途经莫宁顿月台站,而城市支线(City branch)虽同样连接卡姆登镇与尤斯顿,但其隧道走向完全不同,不经过莫宁顿月台站。
  • 这种线路分离的设计为游戏的“长局”模式创造了几乎无限的变化可能性

高段位玩家(Grand Master players)还会充分利用该区域的地面公交网络作为策略的一部分,涉及的线路包括:

  • 常规线路:24、27、29、46、88、134、168、214、253、274、C2路
  • 夜间线路:N5、N20、N28、N29、N253、N279路

(注:本文内容聚焦于游戏的地理与交通背景设定,并未详细阐述游戏的具体规则流程。)

27. Security flaws in an SSO plugin for Caddy (2023) (blog.trailofbits.com)

caddy-security 插件安全漏洞摘要 (2023)

本文档总结了在Caddy服务器的caddy-security插件中发现的10个安全漏洞,这些漏洞可能导致客户端代码执行、OAuth重放攻击和未授权资源访问等高风险攻击。

漏洞详情

  1. 反射型跨站脚本 (XSS) [高危]

    • 问题:应用程序在HTML响应中包含了未经验证的用户输入(如URL路径),导致脚本在用户浏览器中执行。攻击者可劫持会话。
    • 修复:对所有字符串值进行正确的转义处理(推荐使用safehtml/template包),并扩展单元测试以包含恶意XSS有效载荷。
  2. 不安全随机性 [高危]

    • 问题:插件使用math/rand库并以Unix时间戳为种子生成安全关键字符串(如OAuth nonce、MFA密钥、API密钥),这些值可能被暴力破解预测,从而引发OAuth重放攻击。
    • 修复:改用密码学安全的随机数生成器(Golang的crypto/rand)。建议审查代码中所有math/rand的使用场景,并在CI/CD中集成Semgrep规则进行检测。
  3. 通过X-Forwarded-For头进行IP欺骗 [中危]

    • 问题:攻击者可操纵X-Forwarded-For请求头,在/whoami接口中伪造用户IP地址,可能导致未授权访问。
    • 修复:应用程序不应依赖用户提供的头部来获取真实IP。若必须使用,需进行严格的格式验证和清理。
  4. 基于Referer头的XSS [中危]

    • 问题:虽然Referer头经过了部分字符转义,但未处理javascript:等URL协议方案,仍可能触发XSS。
    • 修复:与漏洞#1的修复方案相同。
  5. 开放重定向漏洞 [中危]

    • 问题:恶意构造的带有redirect_url参数的链接可将已登录用户重定向到外部恶意网站,用于钓鱼攻击。
    • 修复:对redirect_url参数进行严格验证,确保重定向仅限于同域或受信任的来源。
  6. X-Forwarded-Host头操作 [中危]

    • 问题:插件处理X-Forwarded-Host头,可能引发缓存中毒、业务逻辑缺陷或SSRF等漏洞。该头还被用于生成QR码,扩大了攻击面。
    • 修复:插件逻辑不应依赖HostX-Forwarded-Host头,而应使用配置文件中指定的域名生成QR码。
  7. X-Forwarded-Proto头操作 [低危]

    • 问题:处理X-Forwarded-Proto头可能导致协议注入和重定向,虽影响有限,但存在安全机制绕过风险。
    • 修复:避免依赖此头。若必须使用,应根据协议白名单(如HTTP/HTTPS)进行验证。
  8. 通过暴力破解验证码绕过双因素认证 (2FA) [低危]

    • 问题:2FA实现缺乏对暴力破解的足够防护,攻击者可自动化整个认证流程来绕过尝试次数限制。
    • 修复:强制要求至少6位验证码,实施账户锁定机制,并对关键操作要求重新认证。
  9. 登出时未失效的用户会话 [低危]

    • 问题:用户点击“登出”后,会话和令牌未正确失效,可能导致会话劫持。
    • 修复:审查登出流程,确保/logout/oauth2/google/logout端点能正确终止会话并撤销令牌。
  10. 解析Caddyfile时出现多个panic [低危]

    • 问题:多个解析函数在访问元素前未验证输入值是否为nil,可导致程序崩溃(index out of range)。这反映了数据验证不充分。
    • 修复:在所有相关函数中添加nil检查。建议为Caddyfile解析函数添加模糊测试。

协调披露时间线

  • 2023年8月7日:漏洞报告给插件维护者。
  • 2023年8月23日:维护者确认近期无修复计划。
  • 2023年9月18日:披露博文发布,并向项目仓库提交了问题。
28. US Government makes $42M bet on open cell networks: Open RAN dream stays alive (www.theverge.com)

美国政府拨款4200万美元推进5G开放无线接入网(O-RAN)标准发展,旨在打破华为在全球蜂窝网络硬件市场的垄断。国家电信和信息管理局(NTIA)的这笔资助将用于在达拉斯建立O-RAN测试中心,以验证该标准的可行性,支持运营商混合使用不同供应商的硬件和软件,从而降低网络建设成本并促进互操作性。

AT&T和Verizon等主要运营商牵头成立了“O-RAN部署加速兼容与商业联盟”(ACCoRD),成员包括爱立信、诺基亚、三星、英特尔等多家科技企业。日本乐天公司早在2020年就建立了首个O-RAN网络,强调该技术能以更小的设备实现低成本网络部署。美国Dish网络也基于O-RAN推出了“创世计划”,虽初期体验不稳定,但已实现覆盖美国70%人口的目标。

O-RAN的核心优势在于允许运营商避免依赖单一供应商,从而加快网络建设并提升网络灵活性。美国政府近年来将O-RAN作为对华技术竞争的重要议题,国会和NTIA已累计拨款约20亿美元支持其发展。尽管本次拨款规模相对较小,但测试中心的建立为联盟成员验证技术可行性、吸引全球行业参与提供了关键平台。

埃里克森与AT&T在2022年底签署的140亿美元五年期合同进一步推动了O-RAN的商业化进程,双方计划在几年内使大部分设备兼容该标准。整体来看,美国政府、运营商和设备商正形成合力,以O-RAN为工具应对华为在全球蜂窝基础设施市场的主导地位。

29. Show HN: Faster LLM evaluation with Bayesian optimization (github.com)

BoCoEL:使用贝叶斯优化加速大语言模型评估

项目概述 BoCoEL(贝叶斯优化覆盖评估工具)旨在通过贝叶斯优化技术,显著降低大语言模型(LLM)评估的计算成本。该工具允许用户仅从选定的语料库中选取少量样本(数十个),即可获得高度准确的模型评估结果。

核心工作原理

  1. 嵌入编码:首先将语料库中的每个条目编码为嵌入向量(此过程比使用LLM本身廉价且快速得多,且可复用)。
  2. 贝叶斯优化选择:利用贝叶斯优化算法,在嵌入空间中智能地选择最优的一小部分查询样本。
  3. 评估与管理:使用所选查询样本对目标LLM进行评估,并通过提供的管理工具轻松处理评估结果。

主要特点

  • 高效低成本:仅需少量样本即可准确评估大型模型。
  • 智能样本选择:基于贝叶斯优化选择最具代表性的评估子集。
  • 双向评估:既可在模型上评估语料库,也可在语料库上评估模型。
  • 广泛兼容:通过集成Hugging Face Transformers和Datasets,支持GPT-2、Pythia、LLAMA等多种模型。
  • 模块化与优化设计:采用模块化架构,并使用如N球表示或潜在空间白化等方法高效表示语料库以提升评估质量。

技术优势 贝叶斯优化特别适用于评估成本高昂的“黑盒”模型(如LLM)。虽然项目需要预先使用编码器处理整个语料库,但编码器的速度比LLM快几个数量级,由此在后续LLM评估中节省的时间足以弥补这一开销。

当前状态与未来 该研究项目已存档。其开发路线图包括简化使用接口(提供一行代码运行评估的高级封装)、开发可视化模块、集成更多后端(如VLLM、OpenAI API)以及支持Python 3.12+等计划。

相关信息

  • 代码采用BSD-3许可协议。
  • 项目欢迎贡献,并提供了详细的使用示例和API参考。
30. GeneGPT, a tool-augmented LLM for bioinformatics (github.com)

GeneGPT:面向生物信息学的工具增强型大语言模型

核心概述

GeneGPT 是一种创新性的方法,旨在通过教导大语言模型利用生物医学工具(特别是 NCBI 的 Web API)来回答信息查询问题,从而解决 LLM 在专业知识领域常出现的“幻觉”错误。该方法利用上下文学习,并结合一种新颖的解码算法来识别和执行 API 调用。

主要成果

  • GeneTuring 基准测试的 8 项任务中达到了 0.83 的平均得分,显著超越了此前的最优水平(New Bing: 0.44)、专用生物医学 LLM(BioGPT: 0.04)以及 ChatGPT(0.12)。
  • 研究表明,API 调用的示例比单纯的文档说明更能有效地帮助模型学习如何使用工具。
  • GeneGPT 具备泛化能力,能够处理更长的 API 调用链以回答需要多步推理的复杂问题。
  • 模型产生的独特且与任务相关的错误,为未来的改进提供了有价值的洞见。

技术细节与使用

  • 环境要求:代码基于 Python 3.9.13 开发,需通过 pip install -r requirements.txt 安装依赖。
  • API 密钥:运行 GeneGPT 需要 OpenAI API 密钥,需将其配置在 config.py 文件中。
  • 运行方式:设置环境后,可通过指定不同的演示材料(Dc.1-2, Dm.1-4)来运行标准版或精简版(GeneGPT-slim)。
  • 评估方法:提供 evaluate.py 脚本用于评估结果,文中给出了在各项生物信息学子任务(如基因别名、基因-疾病关联、基因定位、DNA 比对等)上的具体得分示例。

相关信息

  • 资助:该研究由美国国立卫生研究院(NIH)国家医学图书馆(NLM)的内部研究计划支持。
  • 免责声明:该工具展示的是计算生物学分支的研究成果,其信息不旨在直接用于临床诊断或医疗决策,使用时应咨询专业医疗人员。
  • 引用:文章已发表在《Bioinformatics》期刊(2024年,第40卷第2期),供学术引用。
31. Show HN: Linen.team – A lightweight, thread-first Slack alternative