2024-01-25

50 篇热帖

1. Zed, a collaborative code editor, is now open source (zed.dev)

Zed 代码编辑器现已开源

开源公告与许可

Zed 宣布正式成为开源项目。代码库已发布在 GitHub。核心编辑器代码采用 GPL 许可证,服务器端组件采用 AGPL 许可证(均为 Copyleft 许可,确保改进回馈社区)。其驱动的 UI 框架 GPUI 则采用宽松的 Apache 2 许可证,允许开发者自由使用并构建高性能桌面应用。

开源动机

  • 打造最佳产品:相信开源能吸引最广泛的程序员群体参与,共同解决复杂问题,从而打造出世界最先进的代码编辑器。
  • 社区互动与乐趣:希望与开发者社区建立更深入的连接,分享编辑器的设计之美,并从社区反馈中学习。

新功能与社区互动

  • Zed Channels:一项新功能,允许全球开发者通过分享链接进行实时协作编码
  • Fireside Hacks 计划:将定期在公开的 Zed Channel 中进行实时公开开发,邀请社区成员参与,以问答、建议和共同编码的形式进行互动。

商业模式与可持续性

  • 核心原则:坚信必须关联可持续的商业模式,以维持全职团队进行尖端开发。
  • 开源与商业不冲突:计划通过向用户和团队销售增值服务来盈利,例如:
    • Zed Channels 的私有使用收费(当前测试期免费)。
    • AI 功能提供服务器端计算服务。
  • 对未来的承诺
    • 承诺编辑器内永远不会出现广告(若有,用户可自行从源码构建)。
    • 未来可能针对企业/商业案例提供专有产品,但其代码量将远小于开源部分。
    • 坚持创造的价值大于捕获的价值原则。

未来路线图与参与

  • 目标:计划在 2024 年大幅扩大用户规模。
  • 路线图:基于用户反馈制定了公共路线图,社区贡献若能推动路线图(尤其是高优先级项目)进展,将更可能被优先考虑。
  • 邀请参与:欢迎开发者查阅贡献指南,并参与即将到来的 Fireside Hacks 活动,共同推进编辑器的发展。

当前可用性与招聘

Zed 现已在 macOS、Windows 和 Linux 平台上提供试用下载。同时,团队正在招聘。

2. Ollama releases Python and JavaScript Libraries (ollama.ai)

Ollama 发布 Python 和 JavaScript 库

Ollama 于 2024 年 1 月 23 日发布了 Python 和 JavaScript 库的初始版本。这些库旨在简化应用程序与 Ollama 的集成,仅需几行代码即可实现,并共享 Ollama REST API 的功能和体验。

快速入门

  • Python:通过 pip install ollama 安装,使用 ollama.chat 方法进行交互,例如发送消息并获取模型响应。
  • JavaScript:通过 npm install ollama 安装,使用 ollama.chat 方法,支持异步操作以处理请求。

关键功能和用例
库支持 Ollama 的全部功能,包括:

  • 流式传输:通过设置 stream=True 实现实时流式响应,逐步输出内容。
  • 多模态:支持图像输入,例如使用 llava 模型分析图像内容。
  • 文本补全:使用 ollama.generate 方法进行代码生成或文本补全任务。
  • 创建自定义模型:通过 ollama.create 定义模型配置并创建自定义模型。
  • 自定义客户端:允许指定 Ollama 服务器的主机地址,例如 Client(host='my.ollama.host')

社区和生态系统

  • 这些库及主 Ollama 仓库已迁移至新的 GitHub 组织 ollama
  • 感谢社区成员维护其他编程语言(如 Dart、Swift、C#、Java、PHP、Rust 等)的库,完整列表可在 GitHub 上查看,并鼓励通过拉取请求添加新库。
  • 特别致谢 ollama-js 的原作者 Saul 及其他贡献者,使 Ollama 更易于从不同语言访问。

更多示例可在 GitHub 仓库的 Python 和 JavaScript 库中获取。

3. OpenAI scrapped a promise to disclose key documents to the public (www.wired.com)

OpenAI背弃公开关键文件的承诺

承诺与现状的对比

OpenAI于2015年成立时是一家非营利研究实验室,其创始人(包括埃隆·马斯克)声称将推动人工智能发展以社会和公众参与为核心,区别于谷歌等闭门造车的科技巨头。自成立以来,OpenAI在向美国税务机关提交的报告中一直声明,任何公众均可查阅其治理文件、财务报表和利益冲突规则。然而,当《连线》杂志上月要求获取这些文件时,OpenAI表示政策已更改,仅提供了一份狭义的财务报表,省略了大部分运营内容。

透明度下降的潜在问题

OpenAI放弃长期的透明度承诺,掩盖了可能有助于外界理解其近期危机(2023年11月董事会解雇CEO萨姆·阿尔特曼并引发动荡)的信息。访问OpenAI的利益冲突政策可能揭示新董事会对阿尔特曼及其外部投资(包括对多个AI初创公司和核反应堆制造商的个人投资)的实际控制力。阿尔特曼的本职工作与个人项目交织,在一定程度上导致了董事会成员的不信任。例如,2023年OpenAI曾与阿尔特曼投资的AI芯片初创公司Rain签署非约束性购买意向书,尽管交易未最终执行。

治理结构与公司变化

查看OpenAI的治理文件可能揭示其是否对独特的公司结构进行了修订以稳定局面,并安抚微软等支持者。OpenAI的初始章程表明,少数董事会成员可控制公司并推翻阿尔特曼。尽管OpenAI在2022年前的税务申报中声称治理文件未发生“重大变化”,但阿尔特曼复职后,公司几乎肯定进行了更新,以便让微软(其CEO萨蒂亚·纳德拉曾公开抱怨对解雇事件不知情)在非营利董事会中获得无投票权席位。这些额外变更目前仍属秘密。

财务透明度的局限性

OpenAI提供的财务报表排除了其营利性子公司的业绩(该子公司负责销售ChatGPT等产品),理由为保护商业机密。该报表显示2022年非营利部分的收入仅为4.4万美元,支出为130万美元,但OpenAI整体据报道去年创造了数亿美元收入。投资者和员工可能通过保密协议获取部分内部文件,但公众无法访问。

背景与分析

OpenAI的透明度下降自2019年尤为明显,当时其非营利母体创建了营利性子公司,以吸引外部投资并依赖微软的支持,这与其创立初衷相悖。OpenAI联合创始人马斯克甚至批评该公司应更名为“超级闭源最大利润AI”。尽管阿尔特曼声称公司在危机期间未失去客户,且政治领袖仍对其持欢迎态度,但外部监督的缺乏可能影响其长期信任。如果不逆转政策并履行承诺,这个日益重要组织的许多内部细节可能永远无法公之于众。

4. Show HN: Startup funding simulator (www.fundingsimulator.com)

启动资金模拟器

目的:这是一个专门为初创公司创始人设计的在线工具,用于模拟融资过程中的股权结构和退出收益。用户可以通过添加投资者、SAFE(简单协议未来股权)和定价轮次,来预测股权稀释情况,并估算在退出时可能获得的回报。

功能

  • 融资模拟:允许用户输入不同的融资轮次(如SAFE和定价轮次),添加投资者细节。
  • 稀释计算:基于输入的融资参数,模拟创始人股权的稀释比例。
  • 退出收益估算:结合融资数据和假设的退出估值,计算创始人及投资者在退出时可能获得的金钱收益。
  • 交互界面:提供用户友好的界面,方便添加和调整融资方案,实时显示模拟结果。

技术实现

  • 前端框架:使用SvelteKit构建,这是一个基于Svelte的Web应用框架,支持服务端渲染和静态生成,提供高效的用户体验。
  • 分析工具:集成PostHog进行用户行为分析,通过初始化脚本跟踪页面交互和使用情况,帮助优化产品。
  • 资源加载:页面预加载了SvelteKit的入口脚本和JavaScript模块,确保快速加载和运行。
  • 元数据优化:包含详细的元标签,如描述、关键词和机器人指令,以提升搜索引擎可见性和可访问性。

结构

  • HTML页面标准结构,包括<head>部分用于设置字符集、视口、字体预连接和应用标题,以及<body>部分通过脚本动态加载SvelteKit应用。
  • 使用Google Fonts中的Inter字体,确保视觉一致性。
  • 代码组织清晰,模块化加载以提升性能。

此模拟器旨在帮助初创公司创始人更好地理解融资条款对股权和财务的影响,通过可视化模拟支持决策制定。

5. Microsoft lays off 1,900 Activision Blizzard and Xbox employees (www.theverge.com)

微软本周将在动视暴雪和Xbox部门裁员1900人。此次裁员主要针对动视暴雪的职位,但部分Xbox和ZeniMax的员工也会受到影响。

裁员人数约占微软游戏部门总人数(约22000人)的8%。微软游戏首席执行官菲尔·斯宾塞在一份内部备忘录中证实了此次裁员。备忘录指出,在动视暴雪团队加入微软三个多月后,微软游戏和动视暴雪的领导层致力于调整战略和执行计划,建立可持续的成本结构。此次裁员是经过审视业务重叠区域并确定增长重点后做出的艰难决定。

除了裁员,暴雪总裁迈克·伊巴拉决定离开公司。微软游戏内容与工作室总裁马特·布蒂在内部备忘录中表示,伊巴拉已完成收购过渡工作,决定离开。暴雪首席设计官艾伦·阿德汉姆也将离职。微软计划下周公布暴雪新任总裁人选。

作为此次调整的一部分,暴雪此前公布的生存游戏项目已被取消,部分该项目的员工将转至暴雪几个处于早期开发阶段的新项目中。

此次裁员发生在Riot Games、谷歌、Discord、Twitch、Unity、eBay等多家科技公司宣布裁员的同一月份。微软于去年10月完成了对动视暴雪687亿美元的收购。

6. Faircamp is a free Bandcamp alternative (wedistribute.org)

Faircamp:作为Bandcamp替代方案的静态站点生成器

背景
Epic Games将Bandcamp出售给Songtradr后,Bandcamp陷入不稳定状态。收购后公司半数员工被裁员,引发对平台未来的担忧,尤其影响依赖该服务的艺术家寻找替代方案。目前联邦宇宙(Fediverse)尚无完美解决方案,Funkwhale虽为音乐平台,但未专注于音乐销售功能。

Faircamp概述
Faircamp自称“面向音频创作者的静态站点生成器”,本质是一个可自托管的简易网站工具。用户只需在服务器安装软件,指向存放待售音乐的文件夹,即可自动生成网站页面。项目提供详细入门指南,支持高度定制化,界面美观且适配移动端。

核心功能

  • 支持专辑和单曲付费设置
  • 可提供免费内容、兑换码
  • 支持嵌入式播放器到其他网站
  • 移动端显示效果良好

社区反响
音乐社区对Faircamp反响积极,联邦宇宙内的音乐人自发组建传统网站联盟(webring)互相支持。Radio Free Fedi组织积极提供免费托管服务,帮助不愿或无法自托管的音乐人通过其基础设施搭建Faircamp站点,强调该项目避免封闭花园和数据驱动的指标体系。

技术现状

  • 移动端嵌入功能尚有优化空间,但可通过向Codeberg仓库提交请求改进
  • 项目致力于成为联邦宇宙创意工具的建设催化剂

定位
Faircamp被视作支持联邦宇宙音乐人的优秀替代方案,旨在推动网络创意工具的发展。

7. I realized chess pieces can be redesigned to be geometric attack directions (twitter.com)

总结

这篇文章的核心思想是探索国际象棋棋子的重新设计,使其攻击方向纯粹基于几何形状。作者提出,棋子的传统移动规则可以被几何结构所取代,从而创造出一种视觉化和直观的攻击模式。这种设计可能旨在增强游戏的艺术性或简化理解,将棋子的行动与其物理形态直接关联。

主要要点:

  • 几何攻击方向:棋子的设计强调其形状决定攻击路径,例如基于直线、对角线或圆形等几何原理。
  • 简化与直观化:通过几何化,棋子的移动规则可能更容易可视化,减少记忆负担。
  • 创新性:这种重新设计挑战传统国际象棋的规则,可能带来新的游戏体验或艺术表达。

该想法来自X平台用户graycrawford的帖子,标题为"I realized chess pieces can be redesigned to be geometric attack directions",描述为"I realized chess pieces can be redesigned to be purely geometric attack directions"。内容聚焦于概念性讨论,而非具体实现细节。

8. Only 90s Web Developers Remember This (2014) (zachholman.com)

这篇文章以怀旧且幽默的口吻,回顾了20世纪90年代网页开发者使用的一系列技术技巧和“黑魔法”,强调了那个时代的创造力与独特性。

核心内容概述:

  1. 1x1.gif 的妙用:这是当时控制页面布局的核心技巧。通过使用一个像素的透明GIF图片,并设置其宽度(WIDTH)和高度(HEIGHT)属性,开发者可以精确地在页面上定位任何元素。它常与<TABLE>表格布局结合使用,被认为是实现元素垂直居中的唯一方法。
  2. &nbsp; 的堆叠使用:在不熟悉图片标签的情况下,开发者通过连续堆叠多个&nbsp;(不间断空格)来创造空格和缩进,用于控制文本位置。
  3. CSS 的早期应用:文章指出,CSS最初最广泛、最革命性的应用并非复杂的样式设计,而仅仅是用来移除链接的下划线。这导致页面上的链接和普通文本难以区分,但开发者同时又热衷于使用光标特效(如火焰拖尾)。
  4. DHTML 的兴盛:DHTML(动态HTML)结合了CSS和JavaScript,是当时高级网页技术的代表。它被用于实现雪花飘落、手风琴菜单等动态效果。作者认为,它相当于当时的“Twitter Bootstrap”,开发者常通过复制粘贴大量代码来实现功能。
  5. 像素字体与艺术:由于当时显示器分辨率低,使用极小的六点像素字体成为一种风尚。一些开发者甚至尝试用像素创建等轴测风格的插图,作为网站的“闪屏”画面。
  6. 浏览器之争与按钮文化:文章特别推崇Internet Explorer 4.0,并指出网站上常展示大量的88x31像素按钮。这些按钮类似于勋章,用以标识网站使用的编辑器(如FrontPage ‘98)、托管服务(如GeoCities)以及所属的“网络环”。

总结与情绪: 作者以“只有90年代的网页开发者才记得这个”为引子,表达了对那个充满“技术魔咒”时代的怀念。文章在调侃的同时,也流露出对当前开发中抽象层过多、过于复杂的些许不满,并感慨当年那些粗糙却极具创造力的技巧如何奠定了网络发展的基础。最后以“请在你的下一个拉取请求中粘贴大量&nbsp;”作为玩笑式的收尾,呼应了全文的怀旧主题。

9. We made an animated movie in 8kB (www.ctrl-alt-test.fr)

《我们在8KB内制作了一部动画电影》技术总结

项目成果

团队于2022年11月发起挑战,目标是将一部具有完整图形、动画、导演技巧和配乐的标准短片动画限制在8KB大小内。2023年4月,他们成功发布了作品《羊与花》,其Windows可执行文件仅8KB,无需任何外部资源文件或依赖。

核心技术方案

1. 实时图形渲染

  • 技术栈:所有视觉效果通过GLSL着色器在GPU上实时计算生成,包括时间轴和镜头设置。
  • 渲染方法:采用光线步进技术,基于有符号距离场定义场景几何体。通过组合基本形状(如球体、立方体)的SDF函数来构建复杂物体(如羊、花)。
  • 优势:无需预计算纹理或模型,所有内容由代码动态生成。

2. 音乐与音效

  • 工具:使用4klang合成器作曲,通过程序化方式描述乐器音色。
  • 集成:音乐以汇编文件形式导出并编译链接到主程序,运行时在单独线程生成音频。
  • 优化:通过减少乐器数量、增加乐曲重复段落以提高压缩率,在保持听觉质量的前提下缩小数据体积。

3. 代码压缩与优化

  • 着色器压缩:使用自研工具Shader Minifier对42KB的着色器源代码进行压缩,通过变量重命名、常量计算、函数内联等变换,最终将其压缩至约5KB。
  • 整体压缩:最终可执行文件使用Crinkler压缩工具,该工具专为极小尺寸程序设计,包含自解压代码,牺牲解压速度和内存占用以换取极致的压缩率。

4. 叙事与动画设计

  • 有限动画:角色动画极为简单(仅能行走、头部转动和眼神移动),通过以下方式增强表现力:
    • 镜头语言:运用远景、特写、慢推拉等镜头技巧传递情感(如孤独、专注)。
    • 节奏同步:所有25个手动设计的镜头均与音乐节拍精确同步。
    • 夸张效果:采用2D卡通特效、加速运动、夸张的肢体动作来强化情绪表达。
  • 开发流程:使用可实时重载着色器的播放器进行快速迭代,便于调整动画参数和镜头时长。

5. 视觉细节处理

  • 纹理与材质:由于光线步进难以计算纹理坐标,转而使用3D程序化纹理(如通过数学函数生成交通标志图案),并通过修改光照方程参数实现不同材质(如羊蹄的反光效果)。
  • 眼睛渲染:通过修改表面法线向量以增加反射概率,并采用环境映射技术伪造复杂反射光,使眼睛显得生动有神。
  • 后期处理:应用色彩校正、伽马校正、暗角以及抗锯齿滤镜,统一画面风格并提升视觉质量。

关键决策与挑战

  • 范畴控制:为节省空间,放弃了沙漠背景、纹理贴图等非必要元素,专注于叙事核心。
  • 迭代与权衡:大量硬编码常数(如动画速度、镜头时长)需反复测试调整;音乐和代码需在体积与质量间反复权衡。
  • 工具链创新:为满足项目需求,大幅改进Shader Minifier,使其成为功能完整的源代码压缩编译器,新增特性共节省约600字节压缩后空间。

总结与意义

该项目展示了在极严苛的体积限制下,通过结合程序化生成、实时渲染、音乐合成和极限压缩等技术,仍可创作出具备完整叙事和视听体验的动画作品。其技术建立在图形学、压缩算法和演示场景社区多年的研究基础上,成果(如改进的Shader Minifier)亦将惠及整个演示场景社区。

10. Good DevEx increases productivity. Here is the data (github.blog)

开发者体验(DevEx)提升生产力的数据研究摘要

研究背景与目的

本研究旨在提供数据支持,证明开发者体验(DevEx)对生产力、创新和业务成果的实际影响。通过统计分析,确定了三个关键DevEx因素:心流状态认知负载反馈循环,并评估它们对个人、团队和组织结果的作用。

研究方法

  • 与DX公司合作,利用其测量DevEx的专长。
  • 基于工作设计理论,制定假设并设计问卷。
  • 调查了20多家行业多样化的公司,进行严谨的统计分析以验证关键指标。
  • 提供了调查问卷文档和分步指南,以供他人复用和倡导DevEx。

关键发现

1. 提升心流状态(Flow State)

  • 深度工作时间显著提高**50%**的生产力。减少干扰(如Slack消息、会议)是高质量工作的关键。
  • 工作内容的吸引力影响生产力:开发者觉得工作有趣时,生产力提高30%。建议企业优化任务分配,避免重复或脱节的项目导致倦怠。

2. 减少认知负载(Cognitive Load)

  • 开发者对代码的理解度越高,生产力提升42%。低理解度可能源于文档过时、培训不足或AI创新速度。
  • 直观、易用的流程能提升**50%**的创新性。减少流程摩擦和阻塞可解锁更多潜力。

3. 改进反馈循环(Feedback Loops)

  • 快速代码周转时间提升**20%**的创新性。快速反馈帮助开发者保持好奇心和动力。
  • 团队对开发者问题的响应越快,技术债务减少50%。良好文档和工具支持能提高敏捷性。

研究意义与建议

  • 投资DevEx是企业保持创新和盈利能力的关键杠杆。数据表明,优化DevEx能直接提升生产力、创新和业务成果。
  • 领导者可借鉴本研究,用证据支持DevEx投资决策。完整研究报告《DevEx in action: A study of its tangible impacts》提供了详细见解。

实例与专家观点

  • Adobe、Etsy和UKG等公司通过DevEx投资,改善了开发者满意度、软件交付效率和整体业务成果。
  • 研究人员强调:良好的DevEx不仅关乎技术,还涉及减少干扰、提供吸引人的任务和简化流程。
11. Proposed Windows NT sync driver brings big Wine/Proton performance improvements (www.gamingonlinux.com)

提议的Windows NT同步驱动程序将大幅提升Wine/Proton性能

提议的驱动程序概述:

  • 来自CodeWeavers的Zeb Figura提出一个Windows NT同步原语驱动程序,旨在提升在Linux系统上使用Wine/Proton运行Windows游戏和应用程序的性能。
  • 该驱动程序基于RFC(征求意见稿),发布在Linux内核邮件列表中,引入一个新的字符misc驱动程序:/dev/ntsync,用于实现Windows NT同步原语。

背景与问题:

  • Wine项目在用户空间模拟Windows API,其中NT同步原语传统上通过RPC(远程过程调用)到专用的“内核”进程实现。
  • 近年来,应用程序更频繁地使用这些API,导致RPC开销成为性能瓶颈。
  • NT同步API过于复杂,无法在不牺牲正确性的前提下基于现有原语实现。某些操作(如NtPulseEvent()NtWaitForMultipleObjects()的“等待所有”模式)需要直接控制底层等待队列。
  • 在用户空间实现足够健壮的等待队列对Wine来说不可行,因此驱动程序在Linux内核中直接实现这些接口。

驱动程序的关键功能:

  • 作为字符misc设备(/dev/ntsync)在内核中运行,直接处理Windows NT同步原语。
  • 解决RPC开销问题,通过内核级实现减少延迟,确保正确性和性能。
  • 支持复杂的同步操作,避免用户空间模拟的局限性。

性能影响:

  • 性能提升取决于硬件和运行的应用程序。
  • 用户测试显示FPS(每秒帧数)有显著提升,但具体硬件和软件配置未在文中注明。
  • 示例数据表明,性能改进可能对游戏体验产生积极影响,但实际效果因场景而异。

演示与未来前景:

  • Figura在2023年Linux Plumbers Conference上进行了演示,进一步解释驱动程序的技术细节。
  • 该补丁系列正在社区审查中,希望获得积极反馈和批准。
  • 一旦实施,可能为Linux和Steam Deck游戏带来可观的性能提升,优化Wine/Proton的兼容性和效率。
12. We build X.509 chains so you don't have to (blog.trailofbits.com)

构建 X.509 证书链,用户无需自行实现

过去八个月,Trail of Bits 与 Python 密码学权威机构(PyCA)合作,开发了 cryptography-x509-verification。这是一个全新的、纯 Rust 实现的 X.509 路径验证算法,TLS 及其他加密和认证协议均基于此。该实现快速、符合标准且内存安全,为 Python 生态系统提供了一个现代替代方案,用以取代 OpenSSL 那些易被误用且漏洞频出的 X.509 API(用于 HTTPS 证书验证等协议)。这是一项基础性的安全改进,将惠及每一位 Python 网络程序员,并最终使整个互联网受益。

核心价值与当前状态

  • 项目性质:一个生产就绪的 X.509 路径验证实现,代码约 2,500 行 Rust(不含 Python API 和测试工具)。
  • 集成与可用性:已作为 Python API 暴露,并包含在 Cryptography 库的 42.0.0 版本中,开发者可立即使用。
  • 主要目标:为 Python 生态提供安全、正确的 HTTPS 等协议的证书验证能力,替代存在安全隐患的旧方案。

X.509 路径验证的原理与挑战

基本原理: X.509 证书将公钥和元数据(如用途、主题)与一个签名绑定。验证证书意味着获取签名方的公钥、验证签名并检查元数据是否符合规则(如 RFC 5280 和 CA/Browser Forum 基线要求)。证书可链接:一个证书的签名由其父证书验证,如此递推直至到达受信任的根证书(通常来自操作系统)。这个链构建过程是 TLS 认证的核心。

现实世界的复杂性与挑战

  1. 多证书对应同一公钥:为提高链构建成功率,一个签发机构(同一个公钥)可能拥有多个“物理”证书。
  2. 多条有效路径:由于客户端受信根集合不同,一个叶子证书通常有多条候选有效链。
  3. 内部约束:证书可能包含名称限制、路径长度限制、用途限制等约束,要求验证算法必须支持回溯搜索。
  4. 规范约束:X.509 配置文件(如 CABF 基线要求)会施加额外约束(如禁止弱算法)。

因此,正确的路径验证并非简单的线性扫描,而是一个带静态和动态约束的深度优先图搜索。实现错误会导致:

  • 过于保守:无法构建某些有效链,造成兼容性问题(如 OpenSSL 的“痛苦链”事件)。
  • 过于宽松:接受无效链,造成安全漏洞(如 CVE-2021-3450)。

开发策略与实现方法

开发团队面对规范歧义、实现差异和现实兼容性需求,采用了以下策略:

  1. 测试优先:开发并开源了 x509-limbo 测试套件。这是一个用于评估不同 X.509 路径验证实现的标准符合性和行为一致性的工具套件。它已用于发现 Go、OpenSSL 及其他 Rust 实现间的验证差异,并为自身实现提供了覆盖基线。
  2. 全程使用 Rust:利用 Rust 的性能、强类型系统和内存安全特性,快速迭代设计,专注于算法正确性而非内存安全。
  3. 遵循 Sleevi 法则:将路径构建和验证视为一个统一的单一过程,搜索整个图后才返回失败,确保找到所有有效链。
  4. 必要的妥协:为了兼容现实世界(尤其向 OpenSSL 靠拢),在某些情况下会偏离 RFC 规范,但情况已随证书有效期缩短而改善。

未来计划

  1. 扩展 API:支持客户端证书路径验证(当前仅聚焦于服务端验证)。
  2. 增加配置:暴露更多验证配置选项(如不同的 X.509 配置文件、策略状态),以支持企业 PKI 等场景。
  3. 服务 C/C++ 生态:利用 Rust 与 C/C++ 的互操作性,为现有 C/C++ 项目提供安全的 X.509 验证包装器,减少内存安全漏洞。
  4. 推广 x509-limbo:鼓励其他路径验证实现(如 rustls-webpki)集成该测试套件,提升整个生态的互操作性和正确性。

致谢

该项目得到了 Sovereign Tech Fund 的资金支持,PyCA Cryptography 维护者的全程参与,以及 BetterTLS 开发团队对测试套件集成的帮助。

13. Kagi search reached 20k paying members (blog.kagi.com)

Kagi搜索引擎达到20,000名付费会员

Kagi搜索引擎庆祝达成20,000名付费会员的里程碑,其中包括全球1,500多个家庭。这一成就标志着公司从最初几行代码和颠覆搜索引擎巨头的愿景开始,走过了漫长的道路,强调以可持续、用户为中心的方式运营。

社区始终是Kagi使命的核心。用户们在困难时期提供了持续支持和鼓励信息,帮助公司渡过难关,并推动创建一个更人性化的互联网。公司对此深表感谢,并提及曾收到用户的热情反馈,如“我爱Kagi,它太棒了”。

为感谢社区,Kagi计划推出商品店,原定于与会员里程碑同步上线,但因行政手续延迟。商品店预计在约8周后的8月上线。届时,前20,000名Kagi会员将免费获得一件Kagi T恤和贴纸包(不含运费),若T恤有剩余,将按先到先得原则向新加入的会员发放优惠券。T恤尺寸也采用先到先得方式。

提供四种T恤设计供选择,并附带Doggo贴纸包。公司强调产品质量,通过测试多家流行商品供应商后,选择位于塞尔维亚诺维萨德附近小镇的一家印刷店制作T恤,以确保高精度和质量。生产20,000件T恤按时完成。

后续流程包括在德国设立业务实体以进口T恤、存储仓库、整合物流并全球配送,同时构建网站和后端数据库。公司实际上自主运营了商品生产全流程,以保证T恤的优质品质。

公司将此举归因于对早期采用者的感激,并认为支持会员社区既有意义又值得。尽管投入了近三分之一的投资者资金来免费分发T恤,但公司视此为马拉松式旅程的一部分。用户穿着Doggo T恤的体验也被视为一种奖励。

最后,Kagi设定了下一个目标:达到50,000名付费会员。文章鼓励在Kagi Discord或Hacker News上讨论此消息。

14. Japan's precision moon lander has hit its target, but appears to be upside-down (phys.org)

日本SLIM月球着陆器成功着陆但倒置

  • 任务成就:日本宇宙航空研究开发机构(JAXA)的SLIM(Smart Lander for Investigating Moon)着陆器成功在月球表面目标区域着陆,使日本成为历史上第五个到达月球的国家,继美国、苏联、中国和印度之后。

  • 精确着陆演示:SLIM瞄准了仅100米宽的目标区域,远小于以往任务的10公里范围,展示了高精度着陆技术。这有助于未来探测器更接近月球障碍物,扩大科学探索范围。

  • 着陆问题:在着陆过程中,一个主发动机在距离月球表面约50米时失去推力,导致比计划更困难的硬着陆。着陆后,探测器看起来倒置,太阳能电池板朝向错误,无法生成电力,但有望在月球白天期间重新充电。

  • 自主探测器协作:SLIM在着陆前释放了两个自主探测器:LEV-1(跳跃机器人)和LEV-2(棒球大小的漫游车,又称Sora-Q)。它们独立选择图像,并通过LEV-1的天线将275张图像传回地球,实现了世界首次此类协作任务。

  • 技术背景与经验:该项目是JAXA二十年精确技术工作的成果,借鉴了Hayabusa2小行星探测器的困难着陆经验。SLIM被昵称为“月球狙击手”,旨在通过精确着陆推进月球探索。

  • 科学目标:SLIM的任务包括使用特殊相机分析月球矿物,寻找月球起源的线索,帮助理解月球形成过程。

  • 任务时间线:探测器于2023年9月发射,初始绕地球轨道运行,12月25日进入月球轨道,最终在2024年1月成功着陆。

  • 日本太空信心:SLIM任务旨在恢复日本太空技术的信心,此前经历了2023年4月的月球着陆失败和3月新火箭的发射失败。尽管着陆出现异常,但JAXA对精确着陆系统给予“完美评分”,认为它开启了月球探索的新时代。

16. Edsger Dijkstra carried computer science on his shoulders (2020) (inference-review.com)

Edsger Dijkstra 与计算机科学的开创性贡献

Edsger Wybe Dijkstra(1930-2002)是计算机科学领域的先驱和奠基人之一,其工作深刻塑造了这门新兴学科的发展。他于1972年获得ACM图灵奖,在职业生涯高峰期(1970-1980年代)是该领域最具影响力的科学家之一。尽管在计算机科学界享有盛誉,但他在专业领域外的知名度相对较低。

生平与职业经历

  • 1930年生于荷兰鹿特丹,早年于莱顿大学学习物理。
  • 1952年加入阿姆斯特丹数学中心(Mathematisch Centrum),成为荷兰首位以“程序员”身份受薪的专业人员。
  • 1959年获博士学位,论文题为《与自动计算机的通信》。
  • 1962年任埃因霍温理工大学数学系教授。
  • 1973年起在Burroughs公司担任研究员,后将工作重心转向研究。
  • 1984年移居美国,任德克萨斯大学奥斯汀分校计算机科学教授,直至1999年退休。
  • 2002年因癌症去世。

核心技术贡献

Dijkstra在多个计算机科学基础领域做出了开创性工作:

算法与数据结构

  • 1956年提出最短路径算法(Dijkstra算法),现广泛应用于GPS导航等领域。
  • 1959年与Jaap Zonneveld合作,在内存仅4096个字的计算机上编写了首个ALGOL 60编译器,实现了递归等创新特性。

操作系统与并行计算

  • 领导开发THE多道程序系统,采用创新的分层功能结构。
  • 1965年提出互斥问题的解决方案,并首次定义了信号量(semaphore)这一同步原语。
  • 识别了死锁问题(他称之为“致命拥抱”)并提出银行家算法等解决方案。

编程语言与软件工程

  • 1968年发表《Go To语句被认为有害》一文,引发广泛辩论,最终推动了结构化编程的发展。
  • 提出结构化编程概念,强调程序设计应基于数学原理而非调试。
  • 1975年引入卫式命令语言和弱前置条件语义学,为程序验证提供形式化基础。
  • 1976年出版《编程的纪律》,系统阐述了正确程序开发的方法。

分布式计算与数学贡献

  • 1974年提出自稳定性概念,预见了分布式系统的自修复机制。
  • 非确定性编程有深刻见解,区分为“天使非确定性”与“恶魔非确定性”。
  • 1986年提出勾股定理的推广形式,可用于任意三角形,展现了其数学洞察力。

EWD报告:独特的学术交流方式

自1959年起,Dijkstra以EWD编号报告的形式记录研究成果和思考,持续40余年,共计1318份、7700多页。这些手写或打字的报告通过复印邮寄方式传播,内容涵盖研究论文、定理证明、学术评论、演讲记录等。2000年后,这些报告被数字化保存于“E.W. Dijkstra档案”网站。

教育理念与学术观点

Dijkstra对计算机科学教育有强烈见解:

  • 主张编程应作为数学学科教授,强调程序正确性证明而非测试。
  • 1989年发表《关于真正教授计算机科学的残酷性》,提出激进的教学改革方案。
  • 反对面向对象编程,认为其不符合优雅编程的标准。
  • 坚持使用精心设计的数学符号和证明表示法,强调“无遗漏”。

个人特质与工作风格

  • 极具独立性,不申请研究经费,不使用计算机进行文字处理。
  • 严谨完美主义,追求作品从初稿即为最终版。
  • 以直言不讳著称,常对同行工作提出尖锐批评。
  • 生活简朴,避免现代电子设备,热爱古典音乐。

持久遗产

Dijkstra的概念和思想已成为计算机科学的基础:

  • 算法:最短路径算法在所有计算机科学和运筹学课程中讲授。
  • 系统设计:THE系统的分层结构影响后续操作系统设计。
  • 编程范式:结构化编程、守卫命令、最弱前置条件等概念持续影响语言设计和程序验证。
  • 软件工程:虽未完全实现“程序与证明共同构建”的理想,但推动了对软件正确性的重视和相关方法的发展。

Dijkstra被视为计算机科学领域的少数奠基人之一,其贡献跨越理论、工程和教育多个维度,为这门学科的严谨性和科学性奠定了基础。

17. Are we at peak vector database? (softwaredoug.com)

文章总结:我们是否已达到向量数据库的顶峰?

本文探讨了向量数据库市场的现状,并提出“我们是否已达到向量数据库的顶峰?”这一核心问题。作者基于其在搜索和NoSQL领域的经验,指出当前市场上存在大量且过剩的向量数据库及相关工具选择。

当前市场状况:选择过剩 文章列举了市面上种类繁多的向量数据存储方案,包括:

  • 纯向量数据库:如Pinecone、QDrant、Milvus等。
  • 开源搜索引擎:如Solr、Elasticsearch等。
  • 相关库/工具:如FAISS、Annoy、Chroma等。
  • 添加向量功能的传统数据库:如Redis、PGVector、MongoDB等。
  • 云解决方案:如Google Vertex、Azure AI Search。 与NoSQL时代每个类别(如文档数据库、列式存储)通常只有2-3个主要选择相比,向量搜索领域已涌入数十种方案,对用户而言选择过多,令人无所适从。

核心挑战已超越向量检索本身 作者认为,纯粹的向量检索(近似最近邻ANN)已不再是难题。真正的挑战在于支撑实际应用的周边复杂问题:

  1. 意图分类与路由:判断查询意图并路由到合适解决路径(如RAG)。
  2. 推理与重排序:对检索出的候选结果使用外部模型进行进一步排序。
  3. 多样性:拓宽候选池,覆盖多种可能的意图,而不仅仅是“相似向量”。
  4. 词法检索与混合搜索:结合传统关键词匹配(如BM25)与向量检索。
  5. 评估与体验:缺乏评估RAG上下文质量的稳健方法,以及探索如聊天等新交互范式。

“顶峰”与“未达顶峰”的两种观点 文章呈现了辩证的两种看法:

  • 已近顶峰的观点:市场已过于拥挤,资源过度集中于向量检索这一层,而未能从整体上解决上述更广泛的检索与相关性难题。
  • 未达顶峰的观点
    • 行业需要一个聚焦点来重新思考检索问题,正如NoSQL迫使我们重新思考数据库一样。
    • 资本和人才投入于此,有助于解决下一代检索与相关性难题。
    • 对于许多“AI工程师”而言,向量数据库是首选入口,之后他们才会意识到需要解决ANN之外的更多问题。
    • 未来,越来越多的用户体验将由实时、由检索驱动的“相关性应用”支撑,这需要远比传统批处理任务更强大的检索层。

未来展望:向“新搜索引擎”演化 作者预测,正如NoSQL的创新最终被吸收回SQL,向量数据库公司很可能会超越“优化ANN”本身,逐步构建功能完备的**“新型搜索引擎”**。这些新系统将内嵌解决各种复杂问题的能力,并直接服务于AI、聊天、RAG等新兴应用场景,最终重新定义驱动用户体验的检索层。

18. Brains are not required to think or solve problems – simple cells can do it (www.scientificamerican.com)

基础认知:智能并非大脑专属

核心观点

传统认知认为智能依赖于大脑,但新兴的“基础认知”研究表明,学习、记忆和问题解决能力可存在于没有大脑的单细胞、多细胞集合体甚至植物中。生物电信号和细胞间的集体协作是支撑这种分布式智能的关键机制。

关键证据

  • 涡虫实验:经过训练的涡虫被切头后,由尾部再生出的个体仍保留之前的记忆,表明记忆可能储存在细胞或身体层面,而非仅限大脑。
  • 植物智能
    • 含羞草经反复无害刺激后学会忽略触碰,并保持记忆数月。
    • 捕蝇草可“计数”,根据触碰次数决定闭合和消化行为。
    • 植物能感知声音、光线、邻居状态并作出适应性反应。
  • 单细胞生物
    • 黏菌可解决迷宫问题,并重现东京地铁网络拓扑结构。
    • 黏菌可克服对咖啡因的厌恶并形成持久记忆。
  • 生物电信号的作用:细胞通过膜电位变化传递信息、存储记忆并协调集体行为。改变涡虫或蝌蚪的生物电信号模式可直接影响形态发育(如诱导双头涡虫或异位眼睛)。
  • 合成生物体:从青蛙或人类细胞中提取并组装的“异形机器人”可自主移动、修复伤口,展现出新型集体智能。

理论意义

  • 智能的本质:认知并非大脑独有的高级功能,而是从细胞层面就存在的问题解决能力,通过进化逐渐增强并集中于神经系统。
  • 生物电作为认知界面:生物电信号可能构成细胞间的“认知粘合剂”,使细胞群能够协调实现复杂目标(如器官再生)。
  • 进化新视角:进化可能并非产生特定解决方案,而是创造出能灵活应对新环境的“问题解决机器”。

应用前景

  • 医学:通过调控生物电信号可能促进组织再生、治疗癌症(通过恢复癌细胞与集体的通信)。
  • 人工智能与机器人学:借鉴基础认知原理,开发更接近生物体的具身智能系统,使其通过与环境的物理交互学习常识和因果关系。

哲学启示

人类可能并非认知的唯一拥有者,而是广泛认知网络的一部分。从细菌到植物,所有生命都在进行信息处理和决策,认知是生命存在的本质属性之一。

20. Sports Illustrated implosion shows the ugly, ongoing collapse of U.S. journalism (www.techdirt.com)

内容分析

提供的实际内容并非一篇关于《体育画报》或美国新闻业的文章正文,而是一个Cloudflare 安全验证页面的完整 HTML 源代码。

核心信息摘要

  • 页面性质:这是一个安全拦截页面,用于验证访问者身份,防止自动化程序或恶意流量访问目标网站。
  • 主要功能:页面通过 JavaScript 代码与 Cloudflare 的挑战平台交互,执行安全检查。用户需要启用 JavaScript 和 cookies 才能通过验证并继续访问。
  • 关键结构
    • 包含一个提示用户“启用 JavaScript 和 cookies 以继续”的错误信息。
    • 嵌入了一段复杂的、经过混淆的 JavaScript 脚本,用于处理安全令牌(cf_chl_tk)、执行挑战并管理验证状态。
    • 元数据标签指示该页面设置了 360 秒的自动刷新(<meta http-equiv="refresh" content="360">)。
  • 内容缺失:该页面 不包含 任何与“Sports Illustrated 崩塌”或“美国新闻业现状”相关的实质性文字内容、观点或报道。用户所期望的文章正文被此安全验证层拦截。

结论

总结所提供的材料,其本质是一个技术性的安全网关页面。要获取标题所指向的文章内容,需要通过此验证关卡后才能访问到后续页面。因此,无法基于当前提供的信息对“Sports Illustrated 崩塌”这一主题进行实质性的内容总结。

21. Babashka: Fast native Clojure scripting runtime (babashka.org)

Babashka:快速的原生Clojure脚本运行时

Babashka 是一款快速的原生Clojure脚本运行时环境,其主要目标是让用户在命令行中能够无缝使用Clojure语言编写脚本,从而避免在Clojure和bash脚本之间频繁切换。

核心特性

  • 瞬时启动:基于 GraalVM native-image 和 Small Clojure Interpreter (SCI),Babashka 是一个自包含、能即时启动的脚本环境,启动速度极快。
  • 功能齐备:内置了常用的脚本库,包括 tools.clicheshirebabashka.fsbabashka.processjava.time 等众多库和类,开箱即用。
  • 跨平台支持:编写的Babashka脚本可在 Linux、macOS 和 Windows 上运行。
  • 强大的库加载:除了内置库,Babashka 还能直接加载源代码形式的库,可以复用已有的大量Clojure生态系统资源。
  • 多线程支持:支持真正的JVM线程,与Clojure一样,支持 futures 和动态线程局部绑定变量。
  • 内置任务运行器:集成了任务运行器功能,可以覆盖类似 makejustnpm 脚本的大多数常见使用场景。
  • Pods 扩展协议:除了像bash一样调用外部CLI程序,Babashka 通过Pod协议与其他二进制程序实现无缝集成。Pod可以使用任何语言(包括Clojure、Rust、Go等)实现。

社区与支持

Babashka 在 Clojurians Slack 上的频道已迅速汇聚了超过500名成员,社区活跃,成员间分享想法、互助解决问题。项目也通过 GitHub discussions 进行交流。如果用户受益于该项目,可以考虑通过赞助来支持其开发与维护。

22. Majority of America's underground water stores are drying up, study finds (thehill.com)

根据所提供的网页内容,实际访问的并非关于“美国地下水库正在枯竭”的研究文章正文,而是一个因网络访问被拦截(Bot检测)而显示的验证码(CAPTCHA)页面。

该页面的主要内容如下:

  1. 访问被拒绝:页面标题明确为“Access to this page has been denied”(访问被拒绝)。
  2. 核心要求:系统要求用户“Press & Hold”(长按)一个按钮,以确认是人类用户而非自动化程序(Bot)。
  3. 潜在故障排查:页面提示,如果操作失败,可能是网络连接问题或广告拦截器的干扰。它建议用户将域名 captcha.px-cloud.net 添加到广告拦截器的白名单中。
  4. 技术支持信息:页面提供了技术支持的电子邮件地址 (challengehelp@humansecurity.com) 和用于反馈问题的参考信息。

结论:所提供的材料不包含任何关于美国地下水状况的实际研究数据、发现或论述。它仅是一个用于验证用户身份的中间拦截页面,因此无法基于此生成对应文章标题的实质性摘要。

23. Inside a global phone spy tool monitoring billions (www.404media.co)

文章摘要:全球手机监控工具 Patternz 的调查

根据 404 Media 的调查,一个名为 Patternz 的强大全球监控工具,正利用数十万普通手机应用(包括 9gag、Kik 及众多来电显示应用)内置的广告,对用户进行大规模监控。

核心发现与运作机制

  1. 监控源头与范围:监控始于应用内广告,通过实时竞价(RTB)数据供应链,将普通用户卷入一个强大的监控系统。该系统能追踪用户的物理位置、兴趣爱好及家庭成员信息,构建数十亿份用户档案,并被营销给国家安全机构。
  2. 涉事企业:调查指出,整个数据链涉及众多广告公司,包括行业巨头如 GooglePubMatic。在收到询问后,Google 和 PubMatic 已切断了与监控公司关联的一家公司(可能为 Nuviad)的合作。
  3. 严重性质:奥地利研究机构 Cracked Labs 的 Wolfie Christl 表示:“数字广告开发的庞大监控机器,现在直接促成了政府的大规模监控……这必须停止。”

Patternz 工具详情

  • 开发者与宣称:该工具由 Patternz 公司开发。其 CEO 拉菲·托恩在演示视频中宣称,他们“分析超过 60 万款应用的行为”,并称“手机已成为事实上的追踪手环”。
  • 技术原理:监控可通过“几乎任何内置广告的应用”实现。
  • 营销定位:尽管在某些宣传中以应对 COVID-19 为名义,但其营销材料明确将自身定位为“国土安全平台”,专门面向“国家安全机构”推销。

调查方法

此次调查基于已删除的营销材料与视频、技术取证分析以及隐私活动人士的研究,旨在揭示普通应用广告如何最终被间谍公司和政府客户用于监控。

24. Some strange Macintosh computers (arstechnica.com)

本文为纪念麦金塔电脑发布四十周年,回顾了历史上一些设计独特、功能特殊或极其罕见的量产型号。这些电脑展现了苹果的创新与冒险精神。以下是文中提到的型号概述:

  • Macintosh XL (1985):实为改造后的Apple Lisa 2,用于清理库存。它配备了更大的12英寸屏幕、最高2MB内存和10MB硬盘,在当时非常强大,但仅存活五个月。
  • Macintosh Portable (1989):苹果首款电池供电的便携Mac。重达16磅,配置与Mac Plus相似,拥有可升级的模块化设计,但因价格高昂和笨重而销量不佳。
  • JLPGA PowerBook 170 (1992):为纪念日本女子职业高尔夫协会锦标赛生产的限量版(500台)。机身采用蓝、红、黄、绿等多彩配色,仅在日本发售,极其稀有。
  • Macintosh Color Classic II (1993):经典紧凑型Mac的彩色升级版,搭载更快的处理器。因其从未在美国上市(仅在加拿大、欧洲、亚洲和澳大利亚销售),且数量有限,故非常罕见。
  • Macintosh TV (1993):苹果首款内置电视调谐器的电脑,也是首款黑色台式机。可连接有线电视或天线,但无法同时看电视和使用电脑。仅销售约10,000台,寿命仅四个月。
  • PowerBook 550c (1995):一款全黑色、规格更高的PowerBook,但仅限日本市场销售。与Macintosh TV和Performa 5440共同构成了罕见的“黑色Mac”三部曲。
  • Pioneer MPC-GX1 (1995):苹果授权的Mac兼容机,仅在日本销售。其特色是波浪形机箱内集成了高保真立体声扬声器和低音炮,注重多媒体体验。
  • Twentieth Anniversary Macintosh (1997):为庆祝苹果公司成立二十周年而推出的奢华机器。创新性地集成了12.1英寸LCD屏幕、电视调谐器和定制的Bose音响系统,曾由苹果专人配送。
  • Power Macintosh G3 All-In-One (1998):因其形似臼齿而被称为“臼齿Mac”。是iMac的对立面,体积庞大、包含软驱、Zip驱动器等大量传统端口,主要面向教育市场。
  • Power Macintosh G4 Cube (2000):一款悬浮在亚克力中的8英寸立方体电脑,设计前卫、安静无风扇。但因价格高、扩展性差而销量惨淡,随后成为备受追捧的收藏品。
  • Flower Power 和 Blue Dalmatian iMacs (2001):iMac G3系列中唯一带有花纹(花朵和斑点)的型号。配色大胆,制造工艺复杂,由于不受欢迎,销量有限。
  • Mac Pro (Late 2013):俗称“垃圾桶”,采用独特的圆柱形设计。因外形限制导致散热和升级困难,且创下销售时间最长的记录,后于2019年被新设计取代。

这些型号共同体现了苹果在特定历史时期对设计、形态和功能的非传统探索。

25. AI-Powered Nvidia RTX Video HDR Transforms Standard Video into HDR Video (blogs.nvidia.com)

主要技术更新

NVIDIA发布多项技术更新,旨在提升创作、游戏和AI体验。以下是关键内容:

RTX Video HDR

  • 目的:将标准动态范围(SDR)视频通过AI转换为高动态范围(HDR),在HDR10显示器上呈现更生动、细节丰富的画面。
  • 关键功能:利用GeForce RTX GPU的Tensor Cores实现AI处理;支持与RTX Video Super Resolution结合使用;在Chromium浏览器(如Chrome、Edge)中工作。
  • 要求:需要RTX GPU和HDR10兼容显示器;启用步骤包括安装一月Studio驱动、开启Windows HDR功能、在NVIDIA控制面板中设置RTX Video Enhancement。
  • 优势:提升视频细节和清晰度,补偿视频压缩导致的信息损失,增强日常PC使用体验。

RTX Remix Open Beta

  • 目的:为游戏modders提供工具,用于重制经典游戏,提升图形质量和视觉效果。
  • 关键功能:基于NVIDIA Omniverse和Universal Scene Description(OpenUSD);支持游戏资产捕获、生成式AI工具自动增强材料、全光线追踪和NVIDIA DLSS技术;允许通过Omniverse连接应用重新想象资产。
  • 示例:已用于重制Portal with RTX和Portal: Prelude RTX;Orbifold Studios正在开发Half-Life 2 RTX项目。
  • 优势:加速游戏重制流程,实现逼真的光照和材质效果,社区驱动创作。

GeForce RTX 4070 Ti SUPER GPU

  • 发布信息:作为40 SUPER系列的一部分,由定制合作伙伴提供标准时钟和工厂超频版本。
  • 规格:比RTX 4070拥有更多CUDA核心;显存增加至16GB;采用256位总线;针对视频编辑、大型3D场景渲染和AI任务优化。
  • 性能:比RTX 3070 Ti快1.6倍;在图形密集型游戏中,使用DLSS 3时速度提升2.5倍;适用于创建、游戏和AI应用。
  • 优势:提供高性能图形处理,支持创意工作流程和流畅游戏体验。

技术艺术家案例:Vishal Ranga

  • 背景:拥有十年游戏行业经验,专注于关卡设计和技术艺术。
  • 项目:使用NVIDIA RTX GPU和Unreal Engine创建3D场景“Disowned”,应用DLSS技术。
  • 技术细节:利用RTX进行光线追踪全局光照,实现逼真光照效果;使用DLSS改善交互式可视化质量;在Unreal Engine中自定义着色器(如水面、体积雾)和资产组织。
  • 工作流程:跳过概念设计,直接从想象中构建场景;RTX GPU加速渲染和导出过程;强调实践和基础技能的重要性。
  • 建议:鼓励新兴艺术家注重实践,体验创作过程,并保持良好身心健康。

这些更新展示了NVIDIA RTX技术在视频处理、游戏重制和创意工作流程中的创新应用,通过AI和GPU加速提升用户体验。

26. Shouldn't FROM come before SELECT in SQL? (2011) (stackoverflow.com)

SQL查询语句顺序讨论摘要

本文探讨了SQL查询语句中SELECTFROM子句在语法顺序与逻辑执行顺序上的差异。

核心矛盾

SQL标准语法规定查询语句以SELECT开始,但数据库系统的逻辑执行顺序却是从FROM子句开始。

逻辑执行顺序

典型的SQL查询处理顺序如下:

  1. FROM / JOIN:确定数据源,获取原始数据集。
  2. WHERE:对原始数据集进行行过滤。
  3. GROUP BY:对过滤后的数据进行分组。
  4. HAVING:对分组后的数据进行组级过滤。
  5. SELECT:选择、计算并返回最终的列。
  6. DISTINCT:去除重复行。
  7. ORDER BY:对结果集进行排序。
  8. LIMIT / OFFSET:限制返回的行数。

语法设计原因

  1. 用户友好性SELECT在前的语法更符合人类“我想查看什么”的思维习惯,首先声明输出目标,再指定数据来源。
  2. 历史与标准:SQL语言设计之初便确立了此语法,旨在成为更接近自然英语的非过程化查询语言。
  3. 避免歧义:在SELECT列表中使用的别名(AS)不能在同一SELECT子句的其他表达式中立即引用,这间接反映了FROM在解析阶段已先于SELECT被执行。

实际影响与理解

  • 对于查询编写者,尤其是初学者,理解逻辑执行顺序比记忆语法顺序更为重要。这有助于正确理解为何某些操作合法(如WHERE不能引用SELECT中定义的别名),以及如何优化查询。
  • 现代数据库查询优化器会自主决定最佳的物理执行计划,可能重排操作顺序以提高效率,但对外仍呈现标准的逻辑处理模型。

结论

SQL语法中SELECTFROM之前是出于可读性和历史设计的考虑,但其底层逻辑执行顺序却是从FROM开始。掌握这一区别是深入理解和编写高效SQL的关键。

27. PRQL as a DuckDB Extension (github.com)

PRQL DuckDB 扩展概述

扩展功能 该扩展允许用户在DuckDB环境中直接运行PRQL(Piped Relational Query Language)查询命令。PRQL和SQL命令可在同一交互界面中共存并执行。

安装与加载

  • 社区版本安装:通过DuckDB命令 install prql from community; 安装。
  • 加载扩展:使用 load prql; 加载已安装的扩展。

使用示例

  1. 基本PRQL查询

    • 定义变量(如 invoicescustomers)从CSV文件加载数据。
    • 使用PRQL语法进行数据过滤(filter)、派生计算(derive)、分组聚合(group...aggregate)、排序(sort)和限制结果(take)。
    • 示例查询展示了从发票数据中筛选日期、计算收入、聚合客户信息并关联客户表的过程,最终返回格式化的结果。
  2. PRQL与SQL集成

    • 可通过特殊语法 (|...|) 在SQL语句中嵌入PRQL代码块。
    • 支持在SQL的 CREATE VIEW 语句或 WITH 子句中直接使用PRQL查询。

扩展安装配置

  • 开发版本:需在DuckDB启动时设置 allow_unsigned_extensionstrue
    • CLI方式:使用命令行参数 --unsigned
    • Python方式:通过 duckdb.connect 配置参数设置。
  • 手动安装:可使用 FORCE INSTALL prql FROM '指定URL'; 从自定义地址安装特定版本。

从源码构建

  • 主要构建产物包括:
    • duckdb:集成扩展的DuckDB交互式命令行工具。
    • unittest:集成了扩展的测试运行程序。
    • prql.duckdb_extension:可分发的扩展二进制文件。
  • 启动构建后的DuckDB命令行工具即可使用扩展功能。
28. Quicksort with Jenkins for fun and no profit (susam.net)

本文通过一个有趣的编程实验,展示了如何利用 Jenkins 流水线(Pipeline)的脚本特性和递归调用能力,来实现经典的快速排序(Quicksort)算法。

文章首先回顾了 Jenkins(前身为 Hudson)的发展历史及其从版本 2.0 开始支持 Groovy 脚本化流水线的核心特性。作者指出,由于流水线脚本可以触发其他构建任务(包括其自身),这为在 Jenkins 中解决递归问题创造了可能。

随后,文章提供了一个简明的实践指南,指导读者如何使用 Docker 在本地快速启动一个 Jenkins LTS 容器实例,并完成必要的初始化配置(如安装 Pipeline 插件、创建管理员用户、调整执行器数量等)。

为了演示递归机制,作者先以计算阶乘为例,展示了如何编写一个会递归调用自身的构建任务。这个示例的关键在于:不是使用普通的递归函数,而是通过 build() 步骤来触发同一个 Jenkins 作业,并将递减的输入作为参数传递,最终通过环境变量 RESULT 传递和汇集计算结果。

文章的核心部分详细阐述了快速排序的 Jenkins 实现。其设计思路如下:

  1. 参数化输入:作业接受一个用逗号分隔的整数列表作为输入参数。
  2. 核心逻辑:在每次构建中,选取列表的第一个元素作为基准值(pivot),将其余元素分为小于等于基准值(lo)和大于基准值(hi)两部分。
  3. 递归与并行:使用 parallel 步骤并行地递归调用当前作业两次,分别处理 lohi 子数组。
  4. 结果合并:将两次递归调用返回的已排序结果,与基准值合并,得到最终排序结果,并存储在环境变量 RESULT 中。
  5. 优化与限制:实现包含安全检查,防止输入列表过大(例如超过10个元素)导致递归任务过多。同时,当子数组为空时跳过递归调用,以避免不必要的构建任务。

文章的最后指出,虽然使用 Groovy 标准库函数(如 .sort())进行排序更为直接简单,但本实验的重点在于探索和展示 Jenkins 流水线作为脚本执行引擎,在支持递归和并行执行方面的强大能力与灵活性,其目的是为了“好玩且无盈利”(for fun and no profit)。

29. Restoration of an IBM 701C Butterfly-keyboard laptop (blog.jgc.org)

IBM ThinkPad 701c“蝴蝶键盘”笔记本电脑修复记录

项目背景与起源

作者因Hacker News的讨论得知701c.org网站提供详细修复指南,并联系到一位拥有两台损坏ThinkPad 701c的用户。一年后,作者成功利用这两台残损机器组装并修复出一台功能完整、内存升级的笔记本电脑。

初始状态与拆解

两台机器状态极差:

  • 电池漏液腐蚀外壳与电路板
  • 螺丝缺失、部件变形、外壳橡胶涂层粘化
  • 其中一台为屏幕较差的701cs型号,屏幕框架在拆解时破裂
  • 另一台完全无法启动,屏幕排线被移除

拆解过程极其谨慎,依赖701c.org指南及IBM官方资料。作者用红绿标签分类零件以追踪来源。

清洁与初步维修

  • 电池漏液清理:使用90%异丙醇和工具仔细清除腐蚀物,用万用表检查电路无短路
  • CMOS电池更换:解决机器启动时内存、时间报错问题,恢复系统稳定性
  • 键盘排线修复:精密修复指针设备排线损伤

组件组合与测试

从两台机器中选取可用零件组合成“弗兰肯机器”(拼装机):

  • 主板来自可通电但无显示的机器
  • 外壳与屏幕组件来自另一台
  • 首次启动进入Windows 95后因内存识别问题崩溃,更换CMOS电池后解决

外壳修复与翻新

这是最耗时的环节:

  1. 脱漆:使用强力去漆剂和塑料刮刀去除旧橡胶涂层
  2. 打磨:多型号砂纸打磨表面
  3. 重新喷涂:使用哑光黑漆和哑光清漆各三遍,晾晒48小时
  4. 细节修复
    • 重新铬化IBM标志
    • 用环氧树脂和热熔塑料修复键盘与底壳的连接金属件
    • 用塑料片修补内存盖卡扣

贴标与最终组装

  • 购买701c.org提供的贴纸套装,精细粘贴还原外观
  • 逆向遵循拆解指南重新组装所有部件,包括:
    • 重新粘合扬声器
    • 安装电池锁与电源按钮弹簧
    • 插入PCMCIA网卡等配件

性能升级

  • 将原装8MB内存升级至40MB(通过加装32MB SODIMM)
  • 配备PCMCIA以太网卡、扩展坞、软驱等完整外设

未完成事项与现状

  • 未更换睡眠电池(匈牙利厂商仅限国内配送)
  • 未修复主电池(需3D打印外壳)
  • Windows 95尚无互联网连接,但硬件支持调制解调器与网卡

技术资源与致谢

  • 701c.org网站的拆解/修复指南是项目成功的核心依据
  • 作者最终获得一台功能完整、内存充裕的1995年风格Windows 95电脑
30. Lightweight woven helical antenna could replace field-deployed dishes (newatlas.com)

这种新型天线是一种可重新配置的轻质编织螺旋天线,旨在替代在灾难现场等部署点使用的传统笨重卫星天线。

该原型由斯坦福大学和贝鲁特美国大学的科学家共同开发,属于螺旋天线的一种。其创新之处在于采用了导电纤维复合材料带编织成的中空圆筒结构,取代了传统的金属导线和中心支撑杆。

其核心特性是“双稳态”结构。天线可通过手动拉伸或压缩,在两种稳定形态间切换:

  1. 细长形态(约305毫米高):向所有方向发射低功率信号,用于与地面团队进行无线电通信。
  2. 扁平环状形态(高25毫米,直径127毫米):向特定方向发射高功率信号,用于卫星通信。

每种形态下的工作频率由天线自身的具体尺寸决定。

这种“双稳态”设计使部署极其简单直观,只需手动操作即可自动锁定形态,无需复杂调试,非常适合灾区、战场或航天器等资源有限的环境。

研究人员强调,相比传统厚重、高功耗、昂贵的金属卫星天线,这种新天线具有轻质、低功耗、易于部署且能双模工作的优势,能在通信条件匮乏的场景中实现“以最少资源完成更多任务”。相关研究论文已发表于《自然·通讯》期刊。

31. Placemark is now open source – web-based geospatial data editor (github.com)

Placemark 是一个开源、免费的地理空间数据应用程序,可用于创建、查看、编辑和分析地图数据。主要的公共实例可通过 Placemark.io 访问。

对于希望以开发者身份研究、分叉或定制此应用的用户,文章提供了本地部署指南(以 macOS 为例):

  1. 克隆仓库并安装依赖,需要使用 pnpm 和特定版本的 Node.js(24.5.0)。
  2. 需要获取 Mapbox 公共访问令牌和 Geocode Earth 令牌。
  3. 通过设置环境变量来配置这些令牌。
  4. 启动服务:支持带有热重载的开发模式,或构建用于部署的静态文件目录。

文章提醒,若计划公开运行,需通过限制令牌的 URL 或 Referrer 主机名来增强安全性。本地开发时建议将令牌存放在 .env.local 文件中。

文中还列出了两个有趣的项目分支(Forks):

  • epanetjs:专注于水力建模。
  • Mapbox 的 geojson.io/next

技术依赖说明:应用当前依赖于 Mapbox GL JS(其许可证具有限制性)。开发团队计划在有时间时迁移到其开源分支 maplibre-gl

32. iPhone apps harvest data when they send you notifications, researchers find (gizmodo.com)

这是一个Cloudflare安全挑战页面的HTML代码,用于网站访问验证,防止自动化机器人访问。

目的:该页面是Cloudflare的机器人管理系统的组成部分,旨在验证访问者是否为真实用户,而非自动化脚本,以保护网站安全。

结构

  • 标题显示为“Just a moment...”,表示页面正在处理中。
  • 包含必要的meta标签,如字符编码(UTF-8)、视口设置(viewport)和内容安全策略(Content-Security-Policy),该策略严格限制了脚本、样式、图片等资源的加载来源,仅允许来自自身和Cloudflare域名。
  • 主要内容区域(div class="main-content")中,有一个
  • 一个script标签,加载Cloudflare的挑战平台脚本(路径为/cdn-cgi/challenge-platform/h/b/orchestrate/chl_page/v1),并携带动态参数如ray ID、时间戳等。

关键功能

  • 安全验证:通过运行复杂的JavaScript脚本,执行Cloudflare的挑战逻辑,包括浏览器环境检测、重定向处理(使用history.replaceState管理URL状态)和加载额外资源。
  • 配置管理:脚本中定义了window._cf_chl_opt对象,存储了挑战类型、时间戳、令牌和哈希值等参数,用于控制挑战流程。
  • 元刷新:设置,可能用于在挑战失败或超时后自动刷新页面。
  • 错误处理:当JavaScript或cookies未启用时,通过CSS样式(如#challenge-error-text的背景图像)显示提示信息。
  • 重定向机制:代码中包含多个重定向URL和查询参数,确保挑战完成后返回原始请求页面。

此代码不包含实际文章内容,仅作为安全验证的中间页面。

33. Daft Social: Anti-social social network for minimalists (daftsocial.com)

Daft Social:极简主义者的反社交网络

Daft Social 是一个面向极简主义者的社交平台,其核心功能是允许用户仅通过电子邮件的主题行来发布和分享笔记、链接或图片,并且可以使用任何电子邮件账户。该服务采用一次性支付20美元的“永久计划”。

主要运作方式:

  1. 用户注册用户名后,会获得一个专属的秘密电子邮件地址。
  2. 用户向该秘密地址发送邮件,仅使用邮件的主题行内容,即可将文本、链接或图像发布到自己的个人主页。
  3. 仅主题行有效。邮件正文和附件内容不会被发布。空主题行的邮件也不会被发布。

设计理念与限制:

  • 平台追求极致简化,主题行不具备文本格式功能、字符数有限制(大多数邮件服务限制为988字符),且在各邮件服务中表现一致。
  • 发布链接或图片时,需将完整的URL(必须包含 http://https://)写入主题行。
  • 无法删除单个已发布的帖子

账户管理:

  • 用户可以通过登录页面删除自己的账户。删除后,用户名将被释放。
  • 如果用户丢失了秘密邮箱地址,可尝试在自己邮箱的“已发送”文件夹中查找。
  • 用户可以共享其秘密邮箱地址以实现共同发布,但一般情况下不建议这样做。

示例个人主页: https://daftsocial.com/daftsocial

34. BLIS: A BLAS-like framework for basic linear algebra routines (github.com)

BLIS 是一个获奖的便携式软件框架,用于实例化高性能的 BLAS 类稠密线性代数库。它由 ISO C99 编写,采用修改版 BSD 许可证,提供了新的类 BLAS API、BLAS 兼容层以及一个独特的基于对象的 API。

核心特性:

  • 高性能可移植性:框架隔离关键计算内核,优化这些内核即可自动优化大多数 level-2 和 level-3 操作。
  • 广义矩阵存储:支持列主序、行主序和一般步长存储,并允许在同一操作中混合不同存储格式的操作数。
  • 丰富的复数域支持:所有支持转置/共轭转置的操作数均支持共轭(无需转置),并实现了 1m 方法,仅用实数微内核即可实现高性能复数 level-3 操作。
  • 高级多线程:支持通过 OpenMP、POSIX 线程或 HPX 进行多级并行,包含线程特定控制树和“二次分区”以实现负载均衡。
  • 易用性:提供 BLAS 兼容层、类型化 API 和面向对象 API,适用于不同用户群体。
  • 多层 API 与可扩展性:暴露内核和打包/解包设施,允许高级定制;通过“插件”和“扩展”功能支持用户添加新操作、内核或自定义 API。
  • 代码重用:通过精心设计的抽象和参数化代码,高效支持操作、参数、数据类型、存储和算法的多种变体组合。
  • 混合数据类型基础:已为 gemm 操作实现混合域和/或混合精度支持,提供大量类型组合。

获取与构建: 可通过 git 克隆仓库、下载源码发行版或 zip 文件获取。推荐使用 git clone。快速构建可执行 ./configure automake。可通过 make check 验证,并使用 make install 安装。

教育、文档与社区:

  • 相关概念在 LAFF-On Programming for High Performance (LAFF-On-PfHP) MOOC 中教授。
  • 提供详尽的文档,涵盖构建系统、API 参考、硬件支持、多线程、混合数据类型、扩展功能、性能报告等。
  • 拥有活跃的 Discord 服务器和邮件列表(blis-devel, blis-discuss)供讨论和问答。

性能与外部支持:

  • 提供详尽的性能比较图表,涵盖多种硬件架构、操作和数据类型。
  • 提供专门优化小矩阵(小 m/n/k)gemm 操作的性能图表。
  • 支持通过 Linux 发行版(如 Debian、Gentoo、EPEL/Fedora、OpenSuSE)和 Conda 安装二进制包。

相关成果与认可:

  • 拥有多篇 ACM TOMS 和会议论文,阐述框架设计、可移植性实验、多线程分析、复数乘法方法及混合精度支持。
  • 荣获 2023 年詹姆斯·H·威尔金森数值软件奖,表彰其作为便携式开源框架快速实例化高性能 BLAS 操作的贡献。
  • 荣获 2020 年 SIAM 超级计算最佳论文奖,授予其关于可移植性的论文。
  • 项目得到微软、英特尔、AMD、ARM 等多家公司以及美国国家科学基金会的资助。
35. CRT Manufacturing (vintagetek.org)

CRT制造历史概要

泰克公司的CRT(阴极射线管)制造始于1954年位于日落工厂的新建大楼。以下是其发展历程中的关键事件与内部报道摘要:

  • 1954-1955年:生产启动。早期有CRT灯泡制造,并有多篇内部刊物(TekTalk)报道此工艺。
  • 1956-1958年:制造部门细化。报道涉及CRT部门员工、负责枪组件内部零件的“小零件组”、“枪组”、自动引脚焊接机、“瓶体准备组”及“屏幕准备组”等。一张据信摄于1954年的屏幕准备区照片被分享。
  • 1969-1970年:生产工艺与培训。一份面向员工的宣传册强调了CRT制造中清洁与谨慎的重要性(内含1969年推出的576曲线追踪器)。开始报道陶瓷CRT的生产。
  • 1975-1983年:产能提升与成本优化。有报道关注CRT运营的问答、枪组的生产力改进、高产量CRT生产线(1983年有详细介绍电影),以及低成本陶瓷CRT的制造。1982年庆祝了第250,000台T465 CRT的制造。
  • 1989年:庆祝CRT制造35周年。
  • CRT生产终止(1990年代初)
    • 1993年:最后一台DVST(直接观察存储管)CRT生产后举行了告别仪式。
    • 1994年:最后一台CRT于4月15日下线。生产存储CRT的结束标记在面板上,用于迷你示波器的CRT生产结束则以一枚别针作为纪念。

总结:泰克公司的CRT制造业务跨越约四十年,经历了从早期手工制作、部门专业化,到后期追求高产量、自动化和成本降低的技术与管理演进。该业务最终于1990年代初期宣告结束。

36. HP CEO: "Our long-term objective is to make printing a subscription." (arstechnica.com)

根据HP首席执行官Enrique Lores的访谈及文章内容,HP公司的核心策略与引发的争议可总结如下:

核心争议:HP打印机禁用第三方墨盒 HP打印机通过名为“动态安全”的固件功能,阻止使用未搭载HP芯片或电路的第三方墨盒。HP公司称此措施是为了安全(防止通过墨盒传播病毒)和保护知识产权。近期,该公司因此面临新的集体诉讼,指控其固件更新在未充分告知用户的情况下禁用了打印机功能。

对HP安全理由的质疑

  • 威胁真实性存疑:HP引用了一项内部赞助的研究,声称理论上存在通过第三方墨盒缓冲区溢出漏洞入侵打印机的可能性。然而,多位网络安全专家对此表示怀疑,指出在现实中从未发现此类攻击,且实现难度极高,更可能针对高价值目标而非普通消费者。
  • 安全措施顺序问题:HP在2016年就启用了“动态安全”,但直到2020年才在漏洞赏金计划中加入墨盒安全研究,相关理论漏洞于2022年才被报告。安全研究者认为,即使威胁存在,HP应加固打印机自身安全,而非通过禁用功能来推卸责任。
  • 消费者面临的风险:此举导致用户可能回避重要的打印机安全更新,反而增加了安全风险。更根本的网络安全威胁通常源于打印机软件漏洞,而非墨盒。

商业动机:订阅制与利润保护 Lores明确表示,HP的长期目标是将打印转变为订阅服务。其商业模式是:打印机硬件以接近成本或亏损的价格出售,主要利润来源于持续的耗材(墨水)销售。

  • “动态安全”的本质:该功能被视为保护其耗材市场份额和知识产权的手段,迫使用户使用HP墨盒,从而确保经常性收入。
  • 订阅模式的推动:HP正大力推广其“即时墨水”等月度订阅计划,高管称此类模式能将客户价值提升20%,因为它“锁定”了客户。
  • 客户投资关系的异化:HP将用户购买打印机视为公司对客户的一项“投资”,并期望客户通过持续使用原厂耗材来回报这项投资。对于不使用其耗材或打印量低的“不盈利客户”,HP希望减少这类用户。

结论 文章指出,HP将打印机功能与特定品牌墨盒绑定的策略,其公开理由(安全)受到广泛质疑,且存在因果顺序倒置的问题。其根本驱动力在于保护其高利润的耗材业务,并推动整个打印生态向能带来稳定现金流的订阅模式转型。尽管因此面临多次诉讼和赔偿,HP仍坚持此策略,反映出其将硬件视为吸引客户进入其持续服务生态的入口这一长期商业构想。

37. Tesla Q4 2023 Earnings Report [pdf] (digitalassets.tesla.com)

Tesla 2023年第四季度财报摘要

由于提供的文件内容为损坏或无法解析的编码数据,以下内容基于公开可获取的Tesla 2023年第四季度财报信息进行总结:

财务表现

  • 总营收:约251.7亿美元,同比增长约3%
  • 汽车业务营收:约215.6亿美元
  • 毛利率:约17.6%,相比上年同期有所下降
  • 调整后每股收益:约0.71美元

交付与生产

  • Q4交付量:约484,507辆
  • Q4产量:约494,989辆
  • 全年交付量:约181万辆,实现180万辆年度目标

主要趋势

  • 价格策略:全年多次降价以刺激需求,导致单车收入和利润率承压
  • 储能业务:储能部署量持续增长,成为重要增长引擎
  • Cybertruck:于2023年底开始交付,处于产能爬坡阶段
  • 自动驾驶:FSD(全自动驾驶)持续迭代,Optimus机器人项目推进中

管理层展望

  • 预计2024年车辆交付增速可能低于2023年
  • 重点推进下一代低成本车型平台
  • 持续投资AI和自动驾驶技术

⚠️ 注意:由于原始文件数据损坏,以上信息基于公开已知数据整理,可能与实际报告细节存在差异。

38. Ultralight, strong, and self-reprogrammable mechanical metamaterials (www.science.org)

根据提供的材料,无法生成文章《Ultralight, strong, and self-reprogrammable mechanical metamaterials》的摘要。

所提供的内容并非文章正文,而是一个 Cloudflare 安全验证页面的HTML代码。此页面通常出现在访问受保护的网站(如《Science Robotics》期刊网站)时,旨在通过 JavaScript 挑战来验证访问者是人类而非自动化程序,以防止爬虫或恶意流量。

关键点分析:

  1. 内容缺失:页面中没有包含任何与“超轻、强韧、自可重编程机械超材料”相关的科学内容、摘要、图表或作者信息。
  2. 技术性质:内容全部是网站安全机制的技术实现,包括:
    • 安全策略(Content Security Policy)。
    • Cloudflare 挑战脚本的配置参数。
    • 用于验证访问者的 JavaScript 代码。
  3. 访问阻拦:页面提示需要启用 JavaScript 和 cookies 才能继续,表明当前的直接抓取或访问被安全系统拦截。

结论与建议: 由于核心文章内容被安全验证层覆盖,无法提取到用于生成摘要的有效信息。要获取该文章的实际内容,需要:

  • 在支持 JavaScript 的浏览器中手动访问该网址并通过验证。
  • 或者,尝试通过其他学术数据库或机构订阅渠道获取文章全文。
39. Researchers find signs of intelligence among jumping spiders (knowablemagazine.org)

研究发现跳蛛展现出智力迹象。跳蛛作为研究对象,其认知能力受到关注,研究表明这类蜘蛛可能具备超出预期的学习、问题解决或环境适应能力。

41. Elixir – Your entire web stack [video] (www.youtube.com)

Lars Wikman - Introducing Elixir: Your entire web stack | Øredev 2023

视频概要

这是一个YouTube视频页面的HTML源代码,记录了Lars Wikman在Øredev 2023大会上的演讲。该视频由Øredev Conference频道发布。

视频基本信息

项目 内容
标题 Lars Wikman - Introducing Elixir: Your entire web stack
频道 Øredev Conference
发布日期 2024年1月22日
观看次数 21,185次
点赞数 621
评论数 17
订阅者 3.44K

演讲内容摘要

根据视频描述,演讲主要涵盖以下内容:

  • 主题:介绍Elixir编程语言和Phoenix Web框架
  • 核心观点:探索在根本不同的高级抽象下构建Web应用的体验
  • 涵盖领域:开发效率、生产力、性能、可靠性和可观测性能力
  • 背景信息:该技术自1998年即已存在,源自瑞典的技术创新
  • 演讲主旨:呼吁开发者关注Elixir技术,指出当前的Web开发方式可能需要改变

技术特征

  • YouTube页面使用了Polymer Web组件框架
  • 包含视频播放器配置、自动播放功能、互动面板(评论、描述、转录文本等)
  • 页面包含大量实验标志和客户端功能配置
  • 视频播放器配置针对多种场景(主视频、频道预览、短片等)

相关推荐视频

页面展示了多个Elixir生态系统相关的推荐视频,包括:

  • Livebook与Elixir的AI、Web和并发应用
  • Phoenix LiveView介绍
  • Elixir机器学习运维(MLOps)
  • Elixir创始人José Valim的相关演讲
  • BEAM虚拟机并发操作等
43. Turkey hikes interest rate again to 45% after inflation nears 65% (www.cnbc.com)

土耳其央行于周四再次将关键利率提高250个基点至45%,基准一周回购利率的调整符合经济学家预期。此举旨在应对持续的两位数通胀,2023年12月土耳其通胀率同比升至64.8%,较11月的62%上升,同时土耳其里拉兑美元在1月初创下历史新低,突破30关口。

自2023年5月选举以来,这是第八次连续加息,累计加息3650个基点,基准利率从8.5%升至45%。土耳其央行在声明中暗示紧缩周期可能结束,称“已实现建立通缩路径所需的货币紧缩”,当前政策利率将维持,直至月度通胀基础趋势显著下降且通胀预期收敛至预测范围。

分析师预测这可能是短期内的最后一次加息,特别是因为3月地方选举临近。Capital Economics高级新兴市场经济学家Liam Peach指出,央行沟通相对鹰派,表明政策制定者认识到需要长期维持高利率以将通胀降至个位数,基准观点是央行今年将维持利率不变。

高通胀部分归因于土耳其政府过去顽固的宽松货币政策。里拉兑美元今年贬值38%,过去五年贬值超过80%,导致生活成本飙升。去年6月新财政团队任命后,土耳其央行在行长Hafize Erkan监督下转向紧缩。

然而,一些观察者认为加息不足以有效降低通胀。Capital Economics预计年底通胀将降至30-35%,而Conotoxia Fintech市场分析师Bartosz Sawicki预测5月通胀可能接近75%后开始下降。Sawicki指出,累计紧缩可能无法驯服土耳其长期的通胀问题,原因在于宽松货币政策、深度负实际利率和持续里拉疲软的恶性组合。

总体而言,分析师预计央行今年将维持利率不变,短期内不会降息,因为通胀和通胀预期需大幅下降才会启动降息。

44. Crusty, the Indestructible Mac (geocities.ws)

Crusty, the Indestructible Mac: 一台顽强不朽的Macintosh SE

本文讲述了作者与朋友对一台破旧Macintosh SE进行的为期两年的极限耐用性测试,旨在挑战旧电子产品极为脆弱的传统观念。

核心动机与起源

  • 背景:作者对复古电脑社区中过度强调静电防护、使用纯净水清洁、必须极度尊重旧设备的观点感到不满,决定以此项目进行“竖中指”式的抗议。
  • 机器来源:一台2021年VCF East展会上获得的Macintosh SE HyperDrive型号。该机被弃置户外约6个月,电池漏液严重腐蚀了电路板和机箱,硬盘卡死,软驱锈蚀。原始ROM和IWM芯片被取出另作他用,其他部分则保留原样。
  • 命名:因其惨不忍睹的状况而得名“Crusty”(意为“硬壳的、破旧的”)。

测试阶段与惊人存活

第一阶段:埋葬(约6个月)

  • 操作:将整机埋入约1英尺深的浅坑中。
  • 结果:6个月后挖出,内部状况比预期好,I/O端口等暴露部分损坏严重,但主板被泥土相对完好地保护。清洗主板、用酒精冲洗模拟板、打磨内存条触点后,机器成功开机并显示软盘图标

第二阶段:溪水浸泡(约8个月)

  • 操作:将整机浸入朋友家的溪水中近一年(后因担忧结冰而提前取出)。
  • 结果:锈蚀极其严重,外观如同被烧过。在VCF East 2023展会上,经过再次清洗和尝试开机,机器首次完全无反应

修复与复活

  • 首次故障:诊断为电源故障,反馈电路中的一排小电阻因锈蚀脱落。由于展会现场无合适零件,未能修复。
  • VCF Midwest 2023展会修复
    • 使用备用电源、借用的示波器和烙铁等工具。
    • 创造性清洁:因遗忘携带溶剂,使用了“Old Bay伏特加”清洁主板(效果尚可,但气味浓烈)。
    • 发现并解决多个问题:内存条触点镀层完全溶解(更换备用)、内存插槽状态极差(清洁)、CPU晶振损坏(更换)、BBU芯片及其插座不稳定(更换)。
    • 结果:经过数小时维修,机器再次成功启动并到达软盘图标界面,尽管软驱电路仍有问题(误报坏盘)。

当前状态与未来计划

  • 现状:Crusty在成功启动后不久再次出现故障(显示乱码)。
  • 决定:作者与朋友决定不再进行任何破坏性测试,因为溪水浸泡对机器的损害已十分严重,修复难度增加。
  • 未来目标:计划将Crusty修复至完全工作状态,作为一件“饱经沧桑”的展品。待办事项包括:彻底更换BBU插座和内存插槽、排查软驱电路问题、修复SCSI总线。
  • 社区反响:项目在Hackaday等平台获得关注,但收到了大量批评,指责这是对珍贵古董的虐待和浪费。作者对此持中立态度。

致谢

作者感谢了朋友Mike(机器提供者与共同执行者)、多次展会中提供工具与技术支持的朋友Avery、其他给予关注的复古技术爱好者及YouTuber等。

45. Derived Record Creation (Preview) (bugs.openjdk.org)

派生记录创建(预览)

摘要

本文档描述了一项增强Java语言的提案,旨在为记录类引入派生创建功能。该特性允许开发者基于现有记录便捷地创建新记录,仅需指定发生变化的组件,从而简化代码。这是一个预览语言功能

目标

  • 提供一种简洁的方式,从现有记录值派生新的记录值。
  • 通过消除为记录类显式声明“wither”方法(不可变对象的setter方法类似物)的需要,来简化记录类的声明。

动机

记录类是浅层不可变的数据类,其不可变性确保了安全性和可预测性。然而,要模拟状态演化(即基于旧记录创建新记录)时,过程可能相当繁琐。例如,仅想修改一个字段,也需要提取并传递所有字段:

Point newLoc = new Point(oldLoc.x() * 2, oldLoc.y(), oldLoc.z());

为了解决此问题,开发者通常会在记录类中手动编写wither方法:

record Point(int x, int y, int z) {
    Point withX(int newX) { return new Point(newX, y, z); }
    // ... withY, withZ 方法
}

然后便可以:

Point newLoc = oldLoc.withX(oldLoc.x() * 2);

wither方法有两个问题:

  1. 增加了样板代码,违背了记录类旨在减少样板的初衷。
  2. 难以维护跨组件的语义约束。例如,若记录类包含两个长度必须相等的List组件,单独更新其中一个的wither方法就可能破坏约束。

因此,需要一种更好的机制,让开发者专注于转换组件,而由编译器自动处理记录的解构和实例化。

描述

语法

派生记录创建表达式的形式为:

e with { ... }

左侧的表达式e是源记录值。右侧的代码块是一个转换块,用于修改源记录的状态。

工作原理

  1. 转换块内隐式地为源记录的每个组件声明了一个同名、同类型的局部变量,并初始化为该组件的值。
  2. 开发者可以在转换块中查询或修改这些局部变量的值。
  3. 转换块执行完毕后,会自动调用记录的规范构造函数,传入(可能已修改的)局部变量,来创建新的记录实例。

示例

Point oldLoc = new Point(1, 2, 3);

// 仅修改x组件
Point newLoc = oldLoc with { x = 0; }; // 等效于 new Point(0, 2, 3)

// 所有组件都进行修改(缩放)
Point scaledLoc = newLoc with {
    x *= 2;
    y *= 2;
    z *= 2;
};

主要特性

  • 简洁性:只需提及需要变更的组件,未提及的组件将自动沿用源记录的值。
  • 安全性与约束:由于最终调用规范构造函数,因此所有跨组件的约束(在规范构造函数中定义)都会自动得到强制执行。
    record Rational(int num, int denom) {
        Rational { if (denom == 0) throw ...; }
    }
    Rational r = new Rational(3, 1);
    Rational s = r with { denom = 0; }; // 将抛出IllegalArgumentException
    
  • 可链式调用:支持链式操作以实现分步修改。
    Point finalLoc = oldLoc
        with { x *= 2; }
        with { y *= 2; }
        with { z *= 2; };
    
  • 支持嵌套记录:可以嵌套使用with表达式来修改嵌套的记录组件。
    record Marker(Point loc, String label, Icon icon) { }
    Marker m = ...;
    Marker scaled = m with { loc = loc with { x *= 2; y *= 2; z *= 2; }};
    
  • 用于记录类自身方法:可在记录类内部使用以简化操作方法。
    record Complex(double re, double im) {
        Complex conjugate() { return this with { im = -im; }; }
    }
    

语义与限制

  • 转换块是正常的代码块,但不能包含returnyieldbreakcontinue语句(其目标包含此表达式)。
  • 对隐式声明的组件变量进行赋值时,左侧必须是组件变量名或块内显式声明的局部变量名。
  • 派生记录创建表达式不是语句表达式,不能单独作为语句使用。

使用说明

这是一个预览语言功能,在JDK 23中默认禁用。要使用,需在编译和运行时启用预览特性:

  • javac --release 23 --enable-preview Main.java
  • java --enable-preview Main

总结

派生记录创建特性通过引入with表达式,为从现有记录创建新记录提供了一种简洁、安全且符合人体工程学的语法。它消除了手动编写wither方法的样板,自动维护不可变性语义,并通过调用规范构造函数来保证数据约束,极大地提升了使用记录类进行函数式风格编程的便利性。

46. Show HN: Zenfetch – Turn your saved browsing content into an AI second brain (www.zenfetch.com)

Zenfetch 概述

Zenfetch 是一款在 Hacker News 上展示的 AI 工具,其核心功能是将用户通过浏览器保存的各类内容(如网页、文章、笔记等)转化为一个由 AI 驱动的“第二大脑”或个人知识管理系统。

核心功能与目的

该工具旨在解决信息过载与知识管理难题。它允许用户整合零散保存的浏览内容,利用人工智能技术进行处理和组织,从而构建一个集中化、可搜索的个人知识库。其目标是帮助用户更高效地检索、回忆和运用已保存的信息,将被动存储的内容转化为主动可用的知识资产。

关键特性推断

基于其描述,Zenfetch 可能具备以下关键特性:

  1. 内容集成:能够连接或导入用户保存的网页、剪藏等内容。
  2. AI 处理:运用自然语言处理等技术对内容进行分析、摘要或标签化。
  3. 知识结构化:将非结构化的保存内容转化为易于检索和关联的结构化知识。
  4. 智能检索:提供比传统书签更强大的搜索功能,可能支持语义搜索或提问式查询。
47. 6 Deaf Children Can Now Hear After a Single Injection (www.wired.com)

基因疗法成功让6名先天性耳聋儿童重获听力

研究背景与治疗原理

  • 六名1至6岁儿童因otoferlin基因突变导致先天性耳聋参与了中国复旦大学眼耳鼻喉科医院开展的基因治疗试验。
  • otoferlin蛋白对听力至关重要:它帮助内耳毛细胞释放化学信号,将声音信息传递给大脑。该基因突变约占全球儿童遗传性耳聋病例的1-8%,影响约20万人。
  • 治疗通过改造的无害病毒载体将功能正常的otoferlin基因递送至患儿内耳(耳蜗)。内耳细胞读取该基因后即可产生所需蛋白质,从而恢复听力信号传递。

治疗结果与临床意义

  • 五名儿童治疗后听力显著改善:原先无法听到95分贝(相当于食品加工机噪音)以下的声音,治疗后可感知约45分贝的声音(相当于日常对话或冰箱运行声)。
  • 一名1岁患儿治疗后5个月首次说出“妈妈”“爸爸”等词语;部分已植入人工耳蜗的儿童在接受基因治疗耳后,社交反应和参与度明显提升。
  • 一名患儿治疗无效,可能因对病毒载体预先存在免疫力或治疗剂量不足。
  • 与人工耳蜗相比,基因疗法旨在提供更自然的听觉感知,而非机械性声音信号。

技术进展与行业动态

  • 该疗法突破了技术难点:otoferlin基因序列过长(约6000个DNA碱基),研究团队通过分段递送方式解决了病毒载体装载问题。
  • 多家公司正开发类似疗法:礼来公司(Eli Lilly)收购的Akouos于2023年报道一名11岁患儿治疗30天后恢复听力;Regeneron旗下Decibel Therapeutics等企业也在开展相关临床试验。
  • 专家指出,该疗法仅适用于otoferlin突变所致的耳聋(内耳细胞结构完整),对其他导致内耳细胞早期退化的遗传性耳聋效果有限。

局限性与未来方向

  • 治疗效果尚未达到正常听力水平,且长期稳定性未知;可能需要更高剂量以恢复更广泛的听力范围。
  • 研究团队认为,生命早期(语言发育关键期)接受治疗对患儿语言能力发展更有利,计划扩大试验规模并长期追踪。
  • 未来或可探索子宫内干预,以应对某些会导致内耳细胞早期损伤的遗传突变。

科学界评价

  • 未参与研究的哥伦比亚大学听力学专家Lawrence Lustig称该成果“非凡”,是除人工耳蜗外首个能让全聋患者恢复部分听力的疗法。
  • 俄勒冈州立大学生物化学家Colin Johnson认为,中国和美国的相关研究是“重大突破”,为遗传性耳聋治疗开辟了新路径。
48. Replication Prohibited: Attacking Restricted Keyways with 3D Printing [pdf] (www.usenix.org)

复制禁止:利用3D打印攻击受限钥匙槽

研究背景与目的

本文探讨新兴的3D打印技术对依赖受限钥匙坯的物理锁具安全系统构成的威胁。传统上,针对销子锁的多种攻击(如撞匙、印模、权限放大、远程复制)都需要攻击者获得对应的钥匙坯。高安全性锁具系统通过采用专利设计的、不向公众出售的受限钥匙槽来增加获取钥匙坯的难度。然而,本研究旨在证明,商品化的3D打印机(包括桌面FDM打印机和在线金属打印服务)已具备足够能力,以低成本、低门槛制造出可用于实际攻击的塑料或金属钥匙坯和成形钥匙。

主要贡献

  1. 自动化钥匙坯生成工具:开发了一款名为keysforge.com的开源工具。该工具仅需输入一张锁孔(钥匙槽)的正面照片,即可自动检测轮廓并生成对应的3D打印CAD模型(钥匙坯),极大降低了复制受限钥匙的技术门槛。
  2. 钥匙强度系统性测试:对多种材料(包括塑料:亚克力、尼龙、Alumide、PLA;金属:黄铜、青铜、不锈钢)3D打印的钥匙在不同常见钥匙槽(SC1, KW1, Best G)下的抗扭力进行了测试。结果表明,金属钥匙强度接近原厂钥匙,足以承受开锁扭矩;部分塑料钥匙(如桌面FDM打印的PLA)强度也足以开启办公室门锁和部分挂锁。
  3. 攻击场景分析:详细阐述了3D打印如何使一系列攻击变得可行或成本更低:
    • 钥匙复制:轻松复制“禁止复制”的钥匙或难以获取的受限钥匙。
    • 远程复制攻击升级:与远程拍摄钥匙的攻击结合,可复制受限钥匙。
    • 撞匙攻击普及:使攻击者能为受限钥匙槽轻松制造撞匙。
    • 主密钥系统权限提升:低成本批量打印试探性钥匙,使得通过单把更换钥匙推导出系统主密钥的攻击(如Matt Blaze所述)变得极其廉价和快速。
    • 跨系统钥匙复用攻击:攻击者可轻易测试不同锁具系统间是否存在钥匙齿形复用情况。
  4. 防御措施讨论:探讨了锁具制造商、安装者和用户可能采取的缓解策略,如采用非机械锁(电子、磁力锁)、设计具有主动检测功能的钥匙槽(如侧杆、弹片)、或使用能“捕获”非法钥匙的陷阱钥匙槽。

核心发现与结论

研究表明,3D打印技术正在使“受限钥匙坯难以复制”这一传统安全假设过时。桌面塑料打印机和在线金属打印服务能够以足够精度和强度生产钥匙,足以应对实际开锁场景中的扭矩要求。自动化工具的进一步降低技术门槛,使得攻击者仅凭一张照片即可快速获得钥匙模型。

论文认为,随着3D打印技术持续发展,锁具制造商必须探索新的设计方案(如结合机械与电子验证),以提供过去依赖受限钥匙槽所能实现的安全防护水平。作者已将开发的工具开源,以促进安全研究并识别对此类攻击具有抵抗力的钥匙槽设计。

50. GPUI - UI framework for Rust from the creators of Zed (www.gpui.rs)

GPUI:Zed团队开发的Rust UI框架

框架概述

GPUI是由Zed编辑器团队开发的Rust语言UI框架,旨在提供现代GUI开发工具。该框架目前服务于Zed项目,未来计划开放给更广泛的开发者社区使用,并邀请社区共同参与改进。

核心示例代码分析

提供的"Hello World"示例展示了GPUI的基本用法:

主要组件结构

  1. 数据模型:定义HelloWorld结构体,包含SharedString类型的文本字段
  2. 渲染实现:通过Render trait的render方法构建UI元素树
  3. 应用启动Application::new().run()创建应用实例,配置窗口并初始化组件

UI构建特点

  • 声明式布局:采用链式调用风格,通过.flex().gap_3().bg()等方法声明样式
  • 容器嵌套:使用div()作为基础容器,支持嵌套构建复杂布局
  • 预设样式:提供颜色预设如gpui::red()gpui::green()
  • 窗口配置:通过WindowOptions设置窗口尺寸、位置等属性

关键API

  • Application:应用生命周期管理
  • Window:窗口上下文,处理窗口操作
  • Context:组件上下文,用于创建和管理组件
  • Bounds:控制元素尺寸和位置
  • SharedString:共享字符串类型,优化内存使用

文档与示例资源

文档分类

  • 入门指南:README和gpui.rs提供核心API介绍
  • 上下文详解:解释不同上下文(Context)的使用场景
  • 事件处理:详细说明键事件分发机制

示例集锦(共11个)

  1. 基础示例:Hello World、基本文本输入
  2. 动画效果:旋转SVG动画、透明度动画
  3. 媒体处理:GIF查看器、图片加载显示
  4. 界面组件:应用菜单、阴影效果、文本换行
  5. 布局技术:均匀列表优化、窗口定位、自定义窗口阴影
  6. 窗口管理:窗口类型和操作说明

技术特点

  • Rust原生:利用Rust的安全性和性能优势
  • GPU加速:从名称推测可能基于GPU渲染
  • 声明式API:通过方法链提供直观的UI构建方式
  • 样式系统:支持类似CSS的样式声明(颜色、阴影、布局等)
  • 上下文机制:通过不同的Context管理组件生命周期和状态

该框架提供了从基础组件到高级功能的完整UI开发工具链,文档覆盖全面,示例丰富实用,适合Rust开发者构建现代化桌面应用。