2024-08-07

44 篇热帖

1. Medieval (teenage.engineering)

EP-1320 中世纪电子节拍机概述

EP-1320(Instrumentalis Electronicum)是首款专为中世纪风格音乐制作设计的电子节拍机。它整合了庞大的中世纪音色库,包括乐句、即用乐器和一次性采样,旨在重现“黑暗时代”的声音氛围。

核心特性:

  • 丰富的中世纪音色库: 内置数百个中世纪风格的声音与采样,涵盖:
    • 弦乐器: 手摇风琴、西特琴、弓奏竖琴、吉特恩琴。
    • 管乐器: 风笛、肖姆管、长笛、小号。
    • 鼓与打击乐: 铃鼓、铁链摇响、战鼓、拍板、钟、椰壳马蹄音效。
    • 拟音与音效: 刀剑、箭矢、农场动物、巫师、喧闹农民、龙等。
    • 格里高利圣咏等人声元素。
  • 音乐创作功能:
    • 演示模式: 内置9首中世纪风格演示曲,可使用四个音色库进行即兴演奏。
    • 高压效果: 提供“中世纪高压效果”等即时效果,可用于现场表演增强氛围。
    • 琶音器与音序器: 配备全新琶音器和高分辨率音序器。
    • 内置效果器: 包括“拷问室混响”、“地牢回声”、“游吟诗人合奏”、“维度扩展器”等7种发送效果和主压缩器。
  • 采样与连接:
    • 可通过线路输入和内置麦克风快速采样自定义声音。
    • 支持使用采样工具导入和切片(实时或自动)样本。
  • 操控与界面:
    • 配备压力和力度感应的鼓垫,表面带有可可香味。
    • 具有独特的“中世纪段式显示屏”。
    • 支持通过鼓垫或外部MIDI键盘演奏乐器。

技术规格:

  • 音频: 采样率46.875 kHz/16-bit,内部信号链为32位浮点,ADC/DAC为24位。支持6个立体声或12个单声道复音。
  • 存储: 总内存128 MB(96 MB ROM音色,32 MB用户采样内存)。
  • 项目容量: 9个项目,每项目4组,每组99个模式,每模式12条音轨,模式最长99小节。
  • 接口: 立体声输入/输出、耳机/线路输出、MIDI输入/输出(TRS-A)、同步输入/输出、USB-C。
  • 电源: 可使用4节AAA电池或通过USB-C供电。
  • 物理尺寸: 240 mm x 176 mm x 16 mm,重620克。包装为10英寸盒,内含快速入门指南和贴纸。

EP-1320集成了独特的音色、强大的创作工具和便携设计,定位为面向中世纪、奇幻或复古风格音乐制作的全能节拍工作站。

2. How French Drains Work (practical.engineering)

法式排水沟工作原理

地下水不仅在地表流动,也会在土壤和岩石中渗透。积聚在结构下方的水会产生浮力,可能抬起并损坏结构。这对水坝等大型工程尤为危险,例如2017年美国奥罗维尔大坝溢洪道事故的部分原因就被归咎于其排水系统设计不当。

基本原理

地下水管理的核心挑战是:在有效排水的同时,防止细小的土壤颗粒被水流带走。法式排水沟是解决这一问题的经典方案。其基本构造是在地下挖掘沟渠,填充透水性材料(如砾石),并通常在中心铺设穿孔管道。地下水在重力作用下渗入排水沟,通过砾石层进入管道,最终被引导至排水点。

历史与发展

  • 起源:并非源自法国,而是以美国农民兼发明家亨利·法恩(Henry French)的名字命名,他在1846年的著作中系统描述了当时的排水实践。
  • 早期应用:最初用于农业排水,防止田地过于潮湿影响作物生长和农机作业。早期使用粘土瓦管或天然石头作为排水材料。
  • 演变:从简单的砾石填充沟发展到使用穿孔或开槽的塑料管道,提高了效率和耐久性。关于管道开孔位置(向上或向下)存在争论,但现代许多管道四面开孔,简化了安装。

关键设计挑战:过滤与防堵塞

排水沟最大的问题是堵塞,因此有效的过滤至关重要。过滤设计旨在允许水流通过,同时阻止土壤颗粒进入。

  1. 土工织物过滤:常见于家用法式排水沟。用透水土工布包裹砾石和管道,防止细颗粒土壤侵入。但土工织物易在安装中损坏,且长期使用后可能被堵塞。
  2. 砂滤:在对安全要求极高的场合,如水坝工程,更常采用级配良好的砂层作为过滤器。砂的颗粒尺寸经过设计,能有效阻挡特定大小的土壤颗粒,同时保持透水性。对于大坝等关键结构,常采用“两级过滤”:第一级砂层过滤基础土壤,第二级砾石层允许水流更自由地进入中心的排水管。

应用与排水方式

  • 应用广泛:从保护房屋地基、挡土墙,到农业排涝和大型水坝工程,地下水排水系统不可或缺。
  • 排水出口:最简单的方式是利用重力将收集的水排放到低洼地表。若无低洼点,则需使用水泵(如地下室的集水坑泵)将水抽出。

总结

法式排水沟及其衍生技术,其工程本质始终一致:快速导出地下水,同时防止土壤流失。正确的设计能有效减轻水压、防止土壤冻胀、减少侵蚀和腐蚀,从而保护各种结构和设施。

3. Structured Outputs in the API (openai.com)

该内容展示了一个用于构建“Green Thumb Gardening”(绿拇指园艺)公司网站着陆页的结构化 JSON 数据。它演示了 API 如何输出结构化的前端 UI 组件树(或 DOM 树),以便客户端进行动态解析和渲染。

数据结构与目的

该 JSON 数据采用嵌套的节点结构来描述网页的 UI 布局。每个节点对象包含以下核心属性:

  • type:定义 HTML 标签或组件类型(如 divheadersection)。
  • label:存储节点需要显示的文本内容。
  • children:包含子节点的数组,用于构建页面的层级与嵌套关系。
  • attributes:定义节点的附加属性,主要用于指定 CSS 类名(className)以控制前端样式。

页面结构解析

整个页面被包裹在类名为 landing-page 的根节点中,逻辑上划分为三个核心区块:

  1. 头部区域 (header)

    • 包含网站主标题“Green Thumb Gardening”(类名 site-title)。
    • 包含网站宣传标语“Bringing Life to Your Garden”(类名 site-tagline)。
  2. 关于我们区域 (about-container)

    • 包含一个简介区块(about-section),通过 about-description 节点展示公司的背景信息,强调其在园艺和景观设计方面拥有数十年的专业经验。
  3. 服务项目区域 (services-container)

    • 包含一个服务列表(services-list),详细列出了公司的四项核心业务(均使用 service-item 类名):
      • Garden Design(花园设计)
      • Plant Care & Maintenance(植物护理与维护)
      • Seasonal Cleanup(季节性清理)
      • Custom Landscaping(定制景观)

关键功能与应用场景

此结构化输出展示了 API 将前端页面抽象为标准化数据模型的能力。通过将 UI 组件转化为 JSON 格式,后端可以灵活地控制、存储和下发页面内容,而前端框架(如 React、Vue 等)则可解析此数据并递归渲染出完整的网页。这种设计模式广泛应用于无头 CMS(内容管理系统)、低代码/无代码平台、Server-Driven UI(服务端驱动 UI)以及需要动态生成界面的 API 接口中。

4. Show HN: I've spent nearly 5y on a web app that creates 3D apartments (roometron.com)

Roometron 是一款Web应用,旨在将平面图转化为虚拟的3D空间,以提升房地产营销的沉浸感。该项目耗时近5年开发,主要功能包括绘制、转换、设计和创建3D公寓项目,帮助用户轻松实现房地产视觉化呈现。

5. Parody site ClownStrike refused to bow to CrowdStrike's bogus DMCA takedown (arstechnica.com)

事件起因

IT顾问David Senk在CrowdStrike引发全球大规模IT宕机事件后,创建了名为ClownStrike的恶搞(Parody)网站,以嘲讽该公司的过失及科技行业的过度集中。该网站使用了带有小丑元素的CrowdStrike标志。

DMCA下架风波

代表CrowdStrike的反欺诈团队通过网站托管方Cloudflare发送了DMCA(数字千年版权法)下架通知,要求移除相关标志。Senk认为该网站属于明显的“合理使用”(Fair Use),并向Cloudflare提交了反通知,但未获回应。为避免网站被强制关闭,Senk将其迁移至不受DMCA轻易影响的芬兰服务器。

各方回应与专家观点

  • CrowdStrike:回应称近期发送大量下架通知是为了打击利用宕机事件进行欺诈的恶意网站,恶搞网站并非目标,系反欺诈行动中的“误伤”,并承诺审查流程。Senk批评此举是在推卸责任。
  • EFF专家:电子前哨基金会法律总监Corynne McSherry指出,恶搞网站受合理使用保护。她强调DMCA不应被用于处理商标侵权纠纷,批评大公司因该程序“最简单”而滥用它,导致合法言论被过度审查。

后续发展

在事件引发网络关注且流量激增后,Cloudflare承认系统未接收到Senk的反通知,并表示若其迁回并提交合法反通知,将不会下架网站。Senk拒绝迁回,并建议Cloudflare完善滥用报告系统以确认反通知的接收。最终,Senk放弃对CrowdStrike采取法律行动,但呼吁该公司公开道歉。此事件凸显了大型科技平台在内容审查中的“瓶颈”问题及DMCA程序的滥用隐患。

8. Show HN: 1-FPS encrypted screen sharing for introverts (1fps.video)

1fps.video:为内向者设计的1帧加密屏幕共享工具

核心定位

1fps.video 是一款专注于隐私与高效的加密屏幕共享服务。它通过仅传输每秒1帧的画面,实现低资源消耗、无需音频/视频通话压力的轻量协作体验,尤其适合开发者、安全专家及偏好非同步协作的远程工作者。

核心优势与功能

1. 极简启动与高效协作

  • 无需安装:单一二进制文件即可快速开始共享。
  • 替代会议文化:消除对实时音频/视频的依赖,支持通过链接分享屏幕,促进专注、异步的协作。
  • 智能比较:仅当屏幕内容发生变化时才传输数据,避免冗余流量。

2. 深度隐私与端到端加密

  • 所有传输数据均经过端到端加密
  • 加密密钥在客户端生成,永不发送至服务器。
  • 密钥包含在共享链接的 # 之后,不会传输至后端。
  • 仅持有完整链接的用户可访问共享内容。

3. 低资源消耗与高性能优化

  • 显著降低 CPU、内存及网络带宽占用。
  • 允许低配设备流畅进行屏幕共享。
  • 提供可调节的图像质量可调整大小的屏幕捕获,进一步优化流量。

4. 丰富的实用性功能

  • 支持多显示器共享。
  • 近30 FPS的鼠标光标跟踪(通过WebSocket),确保演示操作的精确与流畅。
  • 正在开发中:对光标坐标进行加密以增强隐私保护。

适用场景与用户

  • 开发者与IT团队:日常编码协作、代码审查、问题排查。
  • 安全专业人士:需要安全、可控的远程访问与监控。
  • 远程工作者:偏好文字沟通、避免持续性音视频会议的压力。
  • 长期监控会话:通过链接即可维持长时间、稳定的屏幕共享流。

总结

1fps.video 通过创新的1帧传输模式与严格的端对端加密,在资源效率、隐私安全与使用便捷性之间找到了平衡。它并非追求高流畅度的视频会议,而是为专注、异步、安全优先的协作场景提供了一个轻量、易用的解决方案。

9. Show HN: BudgetFlow – Budget planning using interactive Sankey diagrams (www.budgetflow.cc)

BudgetFlow:基于交互式桑基图的预算规划工具

核心功能
BudgetFlow 是一款智能预算和财务规划工具,利用交互式桑基图(Sankey diagrams)可视化资金流动,帮助用户清晰管理财务。

工作原理

  • Pockets(口袋):代表不同的财务元素,如收入、支出、账户或分组,适应多样化需求。
  • Flows(流动):跟踪资金在口袋之间的转移,支持自定义时间间隔和金额,确保交易灵活记录。

主要优势

  • 视觉财务规划:通过桑基图创建财务地图,直观展示收入、支出和储蓄状况,提升理解效率。
  • 自适应资金管理:口袋可根据需要调整,例如从一个口袋抽调资金覆盖支出,或将多余现金分配到所需之处。
  • 可定制流程:用户可设置符合个人财务目标的流动间隔和金额,实现精细化跟踪。

新增功能

  • 投资规划:支持模拟投资组合表现、分析资产配置,并可视化不同账户和资产类别的投资流动,助力资产掌控。

定价模式

  • 免费版:提供无限预算和投资计划,但偶尔会提醒升级为支持者。
  • 支持者版:年费20美元,享受无广告体验及所有免费功能。

总结
BudgetFlow 旨在通过可视化规划和动态预算管理,帮助用户自信掌控财务未来,立即注册即可开启财务管理之旅。

10. Show HN: Simple Mbtiles Server – Self-host the entire planet of OpenStreetMaps (github.com)

Simple Mbtiles Server:自托管全球OpenStreetMap瓦片服务器

项目简介 该项目提供了一个轻量级、可自托管的解决方案,用于部署全球规模的OpenStreetMap矢量瓦片地图服务。其核心是通过容器化(Podman/Docker)运行一个服务器,该服务器能够高效地提供来自MBTiles格式数据库的地图瓦片、样式、字体和精灵图,并包含一个完整的前端地图UI。

快速部署(约30分钟)

  1. 创建目录与下载数据
    mkdir osm
    wget --continue -O osm/planet.mbtiles https://nx93856.your-storageshare.de/public.php/dav/files/apP4zEacCwqPfWd/planet.mbtiles
    # 可选:下载等高线数据
    wget --continue -O osm/contours.mbtiles https://nx93856.your-storageshare.de/public.php/dav/files/apP4zEacCwqPfWd/contours_90m-Z11-Z13_30m-Z14.mbtiles
    
  2. 运行容器
    podman run -ti --rm -p 9000:9000 --name sms -v "$(pwd)/osm/:/data/" registry.gitlab.com/markuman/sms:latest
    
  3. 访问地图:在浏览器打开 http://localhost:9000

要求与备注

  • 需要 Podman 或 Docker
  • 存储:全球地图 (planet.mbtiles) 需要约 100 GB。等高线数据 (contours.mbtiles) 额外需要约 315 GB
  • 性能:1核CPU和512MB内存即足够。
  • 下载时间取决于网络带宽和存储服务性能。

核心功能与API

服务器提供了一系列HTTP API端点,用于提供前端界面、地图瓦片、样式和高级功能。

1. 根端点 GET /

  • 提供交互式地图前端界面。
  • 支持URL参数 lat, lng, zoom 直接定位到特定坐标和缩放级别。

2. 能力查询 GET /v1/capabilities

  • 返回JSON,指示服务器支持的功能,如是否加载了等高线数据 (contours) 和路由功能 (routing)。

3. 瓦片服务 GET /v1/tiles/{identifier}@{version}/{z}/{x}/{y}.mvt

  • 以Mapbox Vector Tile (MVT) 格式提供矢量瓦片。
  • 如果客户端支持,返回gzip压缩的瓦片。
  • 自动识别并加载与 planet.mbtiles 同目录的 contours.mbtiles 等高线瓦片。

4. 样式配置 GET /v1/styles/{identifier}@{version}/style.json

  • 返回MapLibre GL样式JSON,并自动注入指向当前服务器实例的瓦片、字体和精灵图URL。
  • 提供多种内置样式,如 osm-bright-gl-style, positron-gl-style, dark-matter-gl-style 等。
  • 如果检测到等高线数据,样式中会包含 contour-linecontour-label 图层。

5. 字体与精灵图服务

  • GET /v1/fonts/.../{stack}/{range}.pbf:按需合并并返回SDF字体数据。
  • GET /v1/styles/.../sprite.png.json:提供精灵图及其索引。

6. 兴趣点搜索 GET /v1/poi/...

  • 根据坐标、类别和半径搜索兴趣点(POI),返回GeoJSON格式结果。
  • 支持的类别包括:超市、药房、医院、加油站、充电站、山间小屋等。

7. 路线规划 GET /v1/route/...

  • 核心特性:基于服务器端加载的矢量瓦片道路网络计算步行或骑行路线,无需外部路由引擎
  • 支持 foot(步行)和 bike(骑行)两种配置,两者在不同道路类型上的通行偏好和耗时估算不同。
  • 响应包含路线几何、距离、预估时长等信息。
  • 限制:路线起止点必须在可通行道路500米内,计算时动态构建图,中等距离路线约需0.5-3秒。

8. 静态资源

  • 提供托管的MapLibre GL JS和CSS文件。

与Nextcloud GpxPod集成

可将此服务器部署在反向代理(如Caddy, Nginx, Traefik)后面以获取SSL证书,然后在Nextcloud的GpxPod应用中添加为自定义矢量瓦片服务器。

数据来源与许可

  • 地图数据:提供的 planet.mbtiles 使用 Planetiler 工具生成。
  • 等高线数据:基于Copernicus WorldDEM数据制作,受其许可约束。
  • 项目代码:基于 mbtiles-s3-server 开发,项目代码本身以MIT许可证发布,但其 vendor/ 目录下的组件可能包含其他许可证。

项目地址与支持

  • GitHub项目https://github.com/markuman/sms
  • 寻求帮助:项目在优化地图样式方面欢迎贡献。
  • 支持:接受捐赠以支持大规模地图数据的生成与托管。
11. Tracking supermarket prices with Playwright (www.sakisv.net)

使用Playwright跟踪超市价格

技术挑战与解决方案

三个希腊大型超市的电商网站均使用JavaScript动态渲染商品,采用无限滚动加载模式。传统HTTP请求库无法获取完整数据,因此作者选择使用Playwright——一个可编程控制浏览器(支持Chromium、Safari、Firefox)的自动化工具,通过Python脚本模拟滚动和加载行为。

核心代码逻辑包括:

  1. 模拟无限滚动:持续滚动直到“加载更多”元素消失。
  2. 提取商品数据:滚动结束后,定位所有商品元素,并过滤掉标有“不可用”的商品。
  3. 解析信息:从商品<div>元素中提取名称、价格、图片、链接等数据。

自动化部署架构

  • 本地笔记本性能不足:2013年的旧笔记本即使升级内存至12GB,抓取耗时仍超过2小时。
  • 云端方案选择:对比AWS与Hetzner云服务器后,选择成本更低(每月约17欧元)的Hetzner实例(4核8G)。
  • 混合自动化:旧笔记本作为CI服务器(使用Concourse),在夜间触发任务,在Hetzner云端并行运行三个超市的抓取脚本。完成后,原始数据经转换上传至pricewatcher.gr网站。任务失败会触发邮件警报。

规避IP封锁

一家超市使用Akamai防火墙,封锁非住宅IP的请求。解决方案是利用Tailscale将旧笔记本配置为“出口节点”,使云端服务器的抓取流量通过旧笔记本的家庭网络发出。由于ISP使用CGNAT技术,家庭IP为共享地址,降低了被直接封锁的风险。

运行维护与优化

  • 失败类型:主要分为“破坏性变更”(如网站布局更改导致脚本报错)和“非破坏性变更”(如价格显示格式改变导致数据解析错误)。
  • 性能优化
    1. 升级服务器:将云服务器配置从4核提升至8核,抓取时间减少约20%。
    2. 减少请求:在Playwright脚本中拦截图片资源请求,加速加载并节省带宽。
  • 错误处理:设置了产品数量异常检测、超时重试等机制。

成本与总结

  • 每月成本:Hetzner服务器约5欧元,数据存储使用Cloudflare R2的免费额度(10GB内免费)。
  • 持续运行:该系统已稳定运行一年半,作者强调通过严格的转换步骤验证数据,并及时接收警报以快速响应问题。
12. The real "Wolf of Wall Street" sales script (www.jointhefollowup.com)

核心背景

文章剖析了电影《华尔街之狼》原型斯特拉顿·奥克芒(Stratton Oakmont)公司的真实冷呼叫(Cold Call)销售话术,并结合现代销售场景提供了实用建议。数据显示,销售人员平均每周花费52%的时间(23.8小时)用于制定营销信息。

销售话术结构解析

斯特拉顿·奥克芒的经典话术包含以下核心环节:

  • 开场与模式中断(Pattern Interrupt):采用标准开场并迅速切入正题(如“我知道您很忙,我长话短说”或“我知道您不认识我”)。这能打破客户的惯性思维,使其放下戒备并集中注意力。
  • 双路径回应:针对客户的“同意”与“拒绝”准备两条应对路径。面对“拒绝”时,是引导和教育客户的最佳时机。
  • 行动呼吁(CTA):核心目标应是将客户预约到日程表上,而非仅仅发送资料(仅发邮件往往意味着失去后续联系)。
  • 秘密武器:“Fair enough?(这很合理吧?)”。被谈判专家认为是谈判中最具威力的词汇之一,能有效推进对话并达成共识。
  • 尽早资格审查(Qualifying):尽早筛选客户,避免在无购买意向的客户身上浪费时间。
  • 异议处理(Objection Handling):通过探究性问题(如“我假设您对现有结果很满意,对吗?”)引导客户说出“是”,这是话术成功的关键。

关键销售策略与心态

  • 常用战术:包括资格审查(“我确信您……”)、制造稀缺性(“只有少数……”)、使用秘密武器(“Fair enough?”)以及反向销售(“我不是来推销的……”)。
  • 心态建设:销售人员需要保持与客户同频的能量状态,并克服自我怀疑的心理障碍。

现代销售建议与工具

  • 优化开场白:避免使用“能给我15秒说明来意吗”这种极易暴露销售意图的套话。建议改为:“您好,我是[姓名],我协助其他[客户职位]解决[某问题],在领英上看到了您,现在方便聊几句吗?”这种方式更真诚,有助于从一开始就建立良好的关系。
  • 跟进的价值:擅长跟进的销售人员,即使不是团队中最优秀的,也能取得巨大的成功。
  • 销售工具(Voice Notes):一款AI工具,用户只需录音,AI即可将语音自动转化为电子邮件、销售推介和摘要文本。
  • 行业趋势:图表显示了ESG(环境、社会和公司治理)软件销售市场的关注与增长趋势。
13. How Uber tests payments in production (news.alvaroduran.com)

文章核心观点总结

本文探讨了Uber如何在生产环境中测试其支付系统,论证了生产环境测试的必要性,并详细介绍了Uber采用的具体策略。以下是文章的核心内容:

1. 生产环境测试的必要性

  • 传统测试的局限性:尽管工程师通常倾向于在预发布(staging)环境测试以寻求掌控感,但成熟的系统(尤其是支付系统)经过多年迭代,简单的缺陷已基本被发现。只有在真实的生产环境中,才能检测出那些罕见、复杂的“疑难杂症”
  • 预发布环境的不足:构建一个完全模拟生产的预发布环境既昂贵(需复制全部生产数据)又不切实际(无法完全复现用户行为)。正如引用的观点所言,“staging只是一个美化了的笔记本电脑”,只有生产环境才是真实的。
  • 支付系统的特殊性:支付软件历史悠久且至关重要,其行为在沙盒环境与真实生产中往往存在显著差异。因此,依赖沙盒测试后,必须在生产环境中进行验证。

2. Uber的生产测试策略

Uber不再追求在预发布阶段解决所有缺陷,而是建立了在生产环境中快速发现并应对问题的体系。其核心在于将每次部署都视为一次实验,关键策略包括:

  • 基于业务指标的发布:每次发布都是一个关于其对关键业务指标(如收入、成本)影响的假设,部署后需密切监控这些指标。
  • 谨慎选择首个实验区域:为了控制潜在风险,Uber会将新功能首先发布到一个选定的地区。例如,在推出GooglePay时,选择了葡萄牙,因为该国规模适中、时区与团队相近便于监控、用户支付流程具有代表性且外部依赖较少。
  • 渐进式发布:功能仅先面向选定区域的一小部分用户开放,确认无误后才逐步扩大范围。这类似于“金丝雀发布”,旨在将重大故障(SEV-1)转化为更多可控的小问题(SEV-3/4)。

3. 关键工具与实践

  • 内部工具支持:Uber开发了如CerberusDeputy等内部工具,用于透明地向真实系统发起请求,并将响应实时导入工程师的本地设备,便于调试。
  • 快速回滚能力:建立强大的监控和回滚机制,确保一旦发现异常指标,能迅速将系统恢复到上一个已知的安全状态。
  • 实例验证:在葡萄牙发布GooglePay时,Uber发现了未收款率飙升的问题。通过快速回滚并与Google协作,确认问题源于双方。这个案例生动说明,此类深层问题无法在预发布环境中发现。

4. 核心启示

  • 韧性优于零故障:目标不应是追求永不犯错,而是建立能够快速检测、响应和从故障中恢复的系统。生产环境测试是实现这种韧性的关键。
  • 测试回报递减:预发布测试的价值会随着系统成熟而递减。在某个临界点后,在真实用户和真实资金环境中进行验证的价值远超继续优化预发布测试
  • 类比:这与算法交易类似,策略在回测中表现优异,但最终检验标准是真实的市场交易。

总结:Uber通过将生产环境部署视为可控实验,结合智能区域选择、渐进式发布、强大监控与快速回滚,成功地将生产测试整合到支付系统的研发流程中。这种方法承认了复杂系统中不确定性的存在,并通过提升系统的可观测性和恢复能力来管理风险,而非试图完全消除风险。

17. YC is doing a first ever Fall batch – applications due by 8/27 (www.ycombinator.com)

YC首次推出秋季批次项目概述

项目背景
应市场需求,YC宣布首次开设2024年秋季批次。该批次旨在为希望立即加入YC、而非等待2025年冬季批次的创始人提供机会。

关键时间节点

  • 申请截止:2024年8月27日(美东时间晚8点)
  • 项目开始:2024年9月29日(旧金山)
  • Demo Day:2024年12月初

投资与资源支持

  • 标准投资:YC提供50万美元标准投资条款。
  • 云计算与AI资源:入选企业可获得Google Cloud、Microsoft Azure的专属GPU集群,以及来自Microsoft for Startups、AWS AI/ML、Google Cloud、OpenAI、Replicate、Scale AI等多家合作伙伴的价值超100万美元的专属信用额度

FAQ要点

  1. 设立原因:近期YC批次成果显著,企业平均收入在季度内增长4倍以上,且新创企业机会持续增长。
  2. 适用对象:面向所有技术领域的创始人,无垂直行业限制,需解决真实市场问题。
  3. 投资条款:与YC标准条款一致。
  4. 批次差异:秋季批次规模可能小于冬夏批次,但项目流程相同。
  5. 后续申请:未入选秋季批次的创始人仍可申请2025年冬季批次(10月开放申请)。
  6. 未来计划:YC正考虑增加年度批次安排,后续将公布更多细节。

作者信息
本文由YC董事总经理Dalton Caldwell撰写,他曾是imeem(2009年被MySpace收购)和App.net的联合创始人兼CEO。

18. Show HN: Play with an interactive heatmap of SF crime (and other cities) (safemap.io)
21. Jeremy Rowley resigns from DigiCert due to mass-revocation incident (bugzilla.mozilla.org)

DigiCert 因大规模证书撤销事件首席合规官辞职

事件概述

DigiCert 的首席合规官 Jeremy Rowley 因一次大规模证书撤销事件而辞职。事件起因是 DigiCert 在基于 DNS 的域名验证方法中存在缺陷,导致错误签发了大量证书,随后不得不进行大规模撤销。

技术细节与根本原因

DigiCert 支持多种 DNS 验证方法,其中包括 CNAME 验证。根据行业标准(CA/Browser 论坛基线要求),用于 CNAME 验证的随机值前必须添加下划线前缀(例如 _rnd),以防止与用户实际创建的域名发生碰撞,这是一个重要的安全假设。

在 2019 年,DigiCert 开始将其验证系统从单体架构迁移到面向服务的架构。在这个过程中,负责自动添加下划线前缀的代码没有被正确地移植到新的系统中的一条路径上。这意味着在 OEM(低量签发)系统的特定验证路径下,CNAME 验证可能在没有下划线前缀的情况下完成并签发证书,从而违反了基线要求。

2024 年 6 月,工程团队进行了一项用户体验改进项目,将多个随机值生成微服务合并为一个统一的服务。这个新服务会自动为所有验证方法的随机值添加下划线前缀,从而无意中修复了上述漏洞。但当时团队并未意识到这是一个合规性问题,而只将其视为一个用户体验的改进。

事件时间线与处理

  • 2024年7月3日:一名研究人员通过电子邮件向 DigiCert 的问题报告地址发送询问,质疑不带下划线的随机值的合规性,但未提供任何证书序列号。
  • 2024年7月27日:在与研究人员多轮沟通和内部调查后,DigiCert 对 DNS 验证方法的代码路径进行了彻底审查,最终发现了 CNAME 验证中缺少下划线前缀的漏洞。
  • 2024年7月29日:DigiCert 提交初步事件报告,并开始识别受影响的证书。
  • 2024年7月29日:确定受影响的证书数量为 83,267 个,涉及 6,807 个订户。根据规则,这些证书应在 24 小时内被撤销。
  • 撤销过程受阻:DigiCert 声称,由于许多客户运营关键基础设施(如电信网络、云服务、医疗行业),无法在短时间内更换证书。部分客户甚至对 DigiCert 提起法律诉讼以阻止撤销。一家名为 Alegeus Technologies 的公司获得了临时限制令(TRO)。
  • 最终撤销完成:尽管面临挑战,DigiCert 于 2024 年 8 月 3 日完成了所有 83,267 个证书的撤销。此外,还发现并撤销了 1,308 个受此影响的 S/MIME 证书。

根本原因分析与责任人辞职

在事后分析中,DigiCert 确定根本原因在于工程与合规团队之间的“孤岛效应”,缺乏有效的协作和审查机制。合规团队未能参与早期的架构设计会议,而工程团队的系统变更也未提交合规审查。

Jeremy Rowley 作为首席合规官,认为自己未能:

  1. 充分重视并调查研究人员的早期报告。
  2. 消除工程与合规团队之间的隔阂。
  3. 确保内部审查能及时发现此类关键缺陷。 因此,他决定辞去职务。DigiCert CEO 任命 Tim Hollebeek 领导一个工作组,负责实施更严格的技术合规控制。

行业反应与讨论

  • 对辞职的看法:许多社区成员对 Jeremy Rowley 的辞职表示遗憾,认为这是系统性失败而非个人错误,并称赞他对行业的长期贡献。他们认为,事件报告中强调“无指责事后分析”文化,将责任归于个人并促使其辞职,对行业传递了不良信号。
  • 对安全影响的争论:一些技术人员指出,DigiCert 最初淡化了该漏洞的安全影响,将其描述为“概率极低”。他们强调,该漏洞存在真实的安全风险,可能被利用针对允许用户创建 CNAME 记录的服务(如某些动态 DNS 提供商)来获取未授权的证书。后续调查(包括 DigiCert 的 DNS 专家)未发现证据表明漏洞已被实际利用。
  • 对撤销延迟的质疑:社区对 DigiCert 未能遵守 24 小时撤销时限表示关切。DigiCert 将五天的撤销过程视为一项成就,但批评者认为这是对规则的不遵守。

补救措施

DigiCert 采取了以下措施以防止类似事件再次发生:

  1. 将随机值生成器合并到单一服务,并确保所有随机值都以 k下划线开头。
  2. 将合规性审查纳入架构评审会议,并取消产品团队自行决定是否需要正式合规审查的权限。
  3. 加强随机值格式的测试,确保其符合基线要求。
  4. 计划淘汰不常用的验证方法,引导客户使用自动化程度更高的方法(如 DNS、HTTP)。
  5. 计划将其开源域控制验证(DCV)系统,供社区审查。

结论

此次事件凸显了在复杂的 PKI 生态系统中,即使是大型权威机构也可能因系统架构变更中的疏忽而引发严重的合规和安全问题。它强调了工程与合规团队紧密协作、以及对安全标准给予最高级别重视的重要性。DigiCert 通过大规模撤销、人事调整和流程改进来应对危机,但该事件及其处理过程仍在行业内引发了关于责任、透明度和规则执行力度的持续讨论。

22. WD announces enterprise 128TB SSD (www.tomshardware.com)

西部数据发布128TB企业级SSD等新品

西部数据(WD)在2024年未来存储与内存大会(FMS 2024)上宣布了一系列面向数据中心、客户端、汽车及消费市场的存储解决方案。其中三项新品尤为引人注目:

1. 128TB高容量QLC企业级SSD

  • 采用第八代BiCS8 NAND技术和QLC(四比特单元)技术。
  • 容量达128TB,专为满足人工智能、机器学习及大语言模型的数据需求设计,适用于快速AI数据湖和容量密集型性能应用。
  • 将在FMS 2024展会上演示。

2. 数据中心其他创新

  • 推出全球首款32TB ePMR叠瓦式(SMR)机械硬盘,用于大规模数据存储。
  • 面向存储密集型应用发布64TB企业级SSD。
  • 展示RapidFlex转接器,可将PCIe SSD信号转换为以太网信号,并在OpenFlex Data24 4200 NVMe-oF存储平台中进行演示。

3. 消费级存储产品

  • 存储卡:推出全球首款SanDisk 8TB SDUC UHS-I SD卡,以及新款4TB microSDUC UHS-I存储卡,面向智能手机、无人机和相机等设备的大容量存储需求。
  • 便携式SSD:演示容量高达16TB的SanDisk Desk Drive便携式SSD概念产品,旨在推动大容量移动存储的商业化。
  • 客户端产品:展示了基于BiCS8技术的PCIe 5.0 NVMe SSD在AI电脑、游戏设备、工作站和笔记本电脑等场景中的应用。
24. Google says it is obligated to disclose confidential info to U.S. government (targettrend.com)

谷歌告知用户其有义务向美国政府披露机密信息

谷歌于2024年8月6日向用户发送邮件,正式通知其依法必须向美国政府机构披露某些机密信息的义务。

邮件核心内容 谷歌在邮件中说明,其会定期收到美国各地政府机构的要求,索要可能包含用户信息的文件。谷歌强调其会:

  1. 仔细审查 每一个请求,以确保其符合相关法律。
  2. 采取措施:如果请求信息过多,会尝试缩小范围;在某些情况下,甚至会拒绝提供任何信息。
  3. 合规披露:当收到的政府请求在法律上有效、具有约束力,并且要求其不得编辑客户机密信息时,谷歌将根据与用户签订的协议条款,提供可能包含机密信息的文件。同时,谷歌会要求对这些信息进行保密处理。

背景与影响

  • 长期隐私争议:文章指出,互联网隐私,尤其是用户数据问题,一直是持久存在的担忧。大型科技公司常被指责在数据问题上妥协,而全球各国政府及其机构对用户数据表现出强烈需求。埃隆·马斯克收购Twitter后所披露的政府监管和数据访问情况即为例证。
  • 市场竞争:谷歌在搜索领域的主导地位及其隐私问题,催生了诸如DuckDuckGo、Brave等将自身定位为注重隐私的替代品的竞争对手。
  • 用户关切:谷歌此次正式发出通知,明确了其在法律要求下披露用户数据的流程和立场,并提供了联系邮箱以供用户咨询。这直接回应了用户对数据如何被共享给政府的潜在疑虑。
26. How to let go: Jake's life ends as his daughter's begins (jakeseliger.com)

核心主题

基于文章标题“How to let go: Jake's life ends as his daughter's begins”(如何放手:杰克的生命终结,女儿的生命开始),本文旨在探讨生命交替与“放手”的情感主题,预期讲述父亲杰克的生命落幕与女儿新生相互交织的故事。

页面实际内容

所提供的文本中缺失文章正文,仅展示了博客页面的电子邮件订阅组件信息:

  • 订阅功能:提示读者输入电子邮件地址以订阅该博客,以便接收新文章发布的邮件通知。
  • 用户数据:显示当前已有 3,806 名用户订阅了该博客。
27. Launch HN: Firezone (YC W22) – Zero-trust access platform built on WireGuard

Firezone:基于WireGuard的零信任访问平台

Firezone是一款基于WireGuard构建的远程访问平台,旨在替代传统企业VPN。它通过与身份提供商同步的访问策略来保护团队的应用、网络和服务,部署轻量级、自包含的二进制文件(网关)到基础设施中,用户通过客户端应用访问受保护资源。

背景与问题

传统企业VPN采用边界安全模型,用户在获得网络访问权限前进行认证。随着远程办公和云资源普及,边界变得模糊,安全风险增加。作者在思科担任安全工程师时亲历此问题:恶意软件常从远程员工笔记本传播至内部系统,防火墙管理繁琐且响应缓慢,VPN集中器在疫情远程办公高峰期不堪重负。

解决方案与技术创新

Firezone将单一边界拆分为多个更小的边界,使其更贴近受保护资源,从而限制攻击影响范围并避免流量瓶颈。其核心技术特点包括:

  • 基于WireGuard:协议轻量高效,支持从单个设备(如iPhone)建立数千条隧道。
  • NAT穿透:通过自研的“snownet”(STUN/TURN层)实现,无需修改防火墙配置。
  • 网关部署:部署静态链接的Linux二进制文件作为网关,可通过增加网关数量来提升吞吐量并实现负载均衡。
  • 密钥安全:WireGuard密钥仅在资源访问授权时分发给对等方,私钥不离开生成设备的内存。
  • 高可用性:网关离线时,连接可在约10秒内自动迁移至健康网关,无需用户干预。
  • 技术栈:使用Elixir/Phoenix和OTP的并发功能驱动,确保高性能与可靠性。

访问控制

采用基于默认拒绝的简单策略系统,定义用户组对资源的访问权限,避免随着控制规则增加导致的管理复杂性。

待改进与开放发展

产品由工程师为工程师打造,UI/UX正在持续优化中。项目以开源形式在GitHub上构建。

试用与反馈

用户可在官方平台无需注册即可体验演示实例,客户端应用也可直接下载。团队欢迎社区反馈。

28. Show HN: ScholArxiv – an open-source, aesthetic, minimal research paper explorer (github.com)

OpenScholarXIV:开源、美观、简约的arXiv论文探索应用

OpenScholarXIV是一款免费开源的应用程序,专为研究人员和学者设计,用于查找、阅读、书签管理、总结和讨论arXiv论文,并集成AI功能。该应用提供最新APK下载,适用于移动端使用。

核心功能与特点

  • 论文查找:支持搜索功能,并提供推荐的研究论文,帮助用户高效发现相关文献。
  • 应用内阅读:用户可在应用内直接阅读论文,无需跳转外部界面,提升阅读体验。
  • 书签管理:允许用户添加书签,方便后续快速访问和回顾论文。
  • 摘要功能:提供论文摘要的阅读和收听选项,便于快速理解论文内容。
  • AI深度分析:通过AI聊天功能,用户可对论文进行深入探讨和提问,增强研究互动性。
  • 自定义API集成:支持用户自带Gemini API密钥,以扩展AI功能。
  • 主题定制:提供Material You风格的亮色和暗色主题选择,适配不同使用环境。
  • 文件操作:支持论文的下载和分享功能,便于协作和资料管理。

其他信息

  • 贡献方式:开发者可通过fork仓库、进行修改并提交pull request参与项目开发;也可通过问题跟踪功能提出贡献想法。
  • 许可证:项目基于GNU General Public License许可,确保开源和自由使用。
  • 致谢:感谢arXiv提供开放访问互操作性支持,并由ScholarXIV团队开发。
29. Zen5's AVX512 Teardown and More (www.numberworld.org)

AMD Zen5架构AVX512深度分析总结

核心突破:原生512位AVX512执行

Zen5(桌面Granite Ridge版本)实现了重大飞跃,将几乎所有数据通路和执行单元扩展至512位宽,成为首款能以4×512位吞吐量执行的桌面处理器。这标志着AMD从Zen4的“双泵”实现(将512位指令拆分为两个256位操作)转向了真正的原生512位架构。这一改进使AMD在SIMD执行方面全面超越Intel,但仅限于全核心的桌面和服务器版本

移动版差异:Strix Point的降级

移动平台的Strix Point APU采用精简设计,其AVX512执行保留了Zen4的4×256位吞吐量模式。虽然仍支持完整的AVX512指令集,但512位指令的性能将减半,类似于Zen4。此外,测试显示Strix Point的FADD延迟和向量寄存器文件等也有进一步削减。

IPC提升不均:因工作负载而异

官方宣称的平均16% IPC提升掩盖了巨大的性能差异:

  • AVX512代码:提升约96-98%(接近2倍)。
  • 标量整数代码:提升30-35%。
  • x87 FPU:提升10-13%。
  • 128位SSE:性能略有回退。
  • 256位AVX:提升仅5-8%。 流行基准测试(如Cinebench)显示10-15%的平庸提升,因其主要依赖标量/SSE代码,恰好命中Zen5改进最小的领域。

关键瓶颈:内存带宽严重不足

尽管计算能力翻倍,内存带宽仍是最大制约。对于16核的9950X,系统总内存带宽约60 GB/s,折算到每核仅0.75字节/周期。这意味着一个从内存流式读取数据的循环,需要每加载一次512位数据执行至少340条AVX512指令,才能不造成瓶颈。对于多线程、数据密集型工作负载,这种瓶颈尤为明显,抵消了Zen5巨大的计算优势,也使得Intel在高端计算领域保持竞争力。

时钟频率与散热

  • 频率:虽然顶级SKU标称频率与上代相同(5.7 GHz),但实际测试显示Zen5在相同频率下所需电压更低,意味着有200MHz的潜在提升。AMD选择用这部分余量确保5.7 GHz频率的绝对稳定,避免了Zen4初期需通过AGESA更新降频200MHz的问题。
  • 散热:Zen5的核心效率更高(相同负载下功耗、温度更低),但散热封装设计(如IHS厚度)并无显著改进。温度控制的改善主要源于能效提升,而非散热能力增强。

AVX512节流机制:与Intel截然不同

AMD采用基于热限制的动态节流。与Intel在检测到AVX512指令就立即大幅降频(即使单线程)不同,Zen5只会在达到温度、功率或电流极限时降频。这带来了更精细的调整,避免了Intel模式下因少量AVX512指令就引发的整体性能惩罚。开发者可以放心在标量代码中“点缀”AVX512指令。

电源状态转换:几乎零延迟

与Intel处理器需要约5万周期来过渡到全速AVX512不同,Zen5能在几纳秒内从标量代码切换到4×512位全速执行,没有明显的性能损失期。这消除了对AVX512使用的主要心理障碍。

关键微架构细节

  • 向量单元:512位指令吞吐量翻倍,但所有原1周期延迟的SIMD指令延迟增加至2周期。
  • 整数单元:ALU从4个增至6个,但实测难以超过5 IPC。整数乘法(低位)吞吐量从1提升至3/周期。
  • 负载/存储:整数负载端口增至4个,256位存储吞吐量翻倍。512位负载为2/周期,存储为1/周期。
  • 向量寄存器文件:Granite Ridge版本大幅增加至384个×512位条目,远超前代和Intel产品。

最终评价与展望

Zen5在桌面端实现了全面且高质量的AVX512性能飞跃,技术指标上已超越Intel。然而,其潜力受限于两大现实问题:1) AM5平台的双通道DDR5内存带宽严重制约了多核数据密集型应用;2) AVX512指令集本身在消费级软件中的采用率极低。内存带宽问题需依赖未来平台改进,而AVX512的普及则取决于Intel是否会在未来支持它,以及开发者是否愿意为这一小部分高性能需求进行优化。Zen5的AVX512是一项出色的技术成就,但其实际影响将由更广泛的生态系统决定。

30. Segment Anything Model and Friends (www.lightly.ai)

Segment Anything Model(SAM)及其变体概述

SAM 的核心思想与组成

SAM 是一种可提示的基础分割模型,旨在通过灵活的输入提示实现零样本图像分割。其成功依赖于三个核心组件:

  1. 可提示分割任务:支持多种提示(点、框、文本、掩码),并要求模型为任何提示生成至少一个有效分割掩码,以处理模糊性。
  2. 模型架构
    • 图像编码器:基于 MAE 预训练的 ViT,处理高分辨率图像。
    • 提示编码器:稀疏提示(点、框、文本)和密集提示(掩码)分别编码。
    • 掩码解码器:基于 Transformer,高效预测多个掩码及其置信度(IoU)。
  3. 数据引擎与数据集
    • 通过三阶段数据引擎(辅助手动、半自动、全自动)迭代收集数据。
    • 构建了 SA-1B 数据集,包含 1100 万张图像和超过 10 亿个掩码。

SAM 的零样本性能

SAM 在多个未见任务上表现出色:

  • 单点有效掩码评估:在多数数据集上优于基线,人工评估中掩码质量更高。
  • 边缘检测:未专门训练却能生成合理的边缘图。
  • 对象建议:在中大尺寸对象上优于 ViTDet-H。
  • 实例分割:性能接近 ViTDet-H,掩码质量更佳。
  • 文本到掩码:能基于简单文本提示分割对象。

SAM 的加速变体

为解决计算效率问题,出现了一系列优化模型:

  • FastSAM:将任务分解为实例分割(YOLOv8)和提示选择,在仅使用 2% SA-1B 数据训练下实现接近 SAM 的性能,推理速度大幅提升。
  • MobileSAM:通过解耦知识蒸馏,将大编码器蒸馏至轻量编码器,模型尺寸缩小 7 倍,速度提升 5 倍。
  • EfficientSAM:结合掩码图像预训练(SAMI)和知识蒸馏,利用 SAM 编码器特征训练轻量编码器,在下游任务中保持高性能。

SAM 2:扩展至视频分割

SAM 2 将可提示分割任务推广到视频,定义为可提示视觉分割(PVS)任务

  • 任务:支持在任意视频帧通过点击、框或掩码提示,实时输出分割掩码,并在整个视频中传播掩码。
  • 模型
    • 使用 Hiera MAE 编码器提取帧特征。
    • 通过记忆注意力模块整合时空特征和历史预测。
    • 增加物体存在性预测头以处理遮挡。
  • 性能
    • 在视频物体分割任务中显著优于现有方法。
    • 在图像分割任务上也优于 SAM,人工标注速度提升 8 倍。

总结

SAM 系列模型通过可提示分割范式、灵活架构和大规模数据,推动了图像和视频分割的零样本泛化能力。后续变体(FastSAM、MobileSAM、EfficientSAM)通过优化计算效率实现实时应用,而 SAM 2 进一步扩展至视频领域,展现了基础模型在计算机视觉中的潜力。

31. MNT Pocket Reform first impressions and hardware (andypiper.co.uk)

MNT Pocket Reform是一款模块化、开源硬件的7英寸Linux掌上电脑,通过众筹活动发售。作者选择了Hyper版本,包含皮套、固态硬盘和印刷手册。设备虽小但结构坚固,厚度约为14英寸MacBook Pro的三倍,内部组件易于用户维修,配有完整手册和电路图。设计分为上下两部分:上部集成主板、显示屏和接口,下部包含电池和机械键盘;上部面板采用铜层作为处理器散热器。

键盘为直列式布局,需时间适应;触控球反应灵敏;背光按键可调。屏幕显示效果出色,被认为是设备的一大亮点。接口方面,配备USB-C(兼作充电)、micro-HDMI、micro SD卡槽及工业IX以太网连接器(需适配器)。设备预装定制版Debian不稳定版系统,适合爱好者使用。作者遇到NVMe固态硬盘硬件问题并更换了更高性能型号,还曾因刷错引导程序导致设备无法启动,但通过开源方式修复。系统控制器(RP2040芯片)固件仍在优化中,作者已测试过充电行为改进的更新。

作者计划后续安装WWAN调制解调器卡,并探索Sway桌面环境、板载I2C接口等硬件功能,未来可能支持树莓派CM4模块化升级。设备社区支持良好,作者通过论坛和IRC获取帮助,并提交反馈和错误报告。整体上,MNT Pocket Reform体现了开源硬件的理念,适合愿意折腾和学习的用户。

33. Open source tools to query OpenStreetMap (wcedmisten.fyi)

本文总结了六款用于查询和分析 OpenStreetMap (OSM) 庞大数据集的开源工具,概述了其核心功能、优势与局限性:

1. Overpass Turbo

  • 功能:基于 Web 的过滤工具,通过 Overpass API 使用过程化查询语言分析 OSM 数据。
  • 优势:无需本地环境,支持多格式导出;内置向导并支持 AI 辅助构建自然语言查询。
  • 局限:查询语法可读性较差;大型查询速度慢;受共享服务器的内存和超时限制。

2. osm2pgsql + PostGIS

  • 功能:命令行工具,将 OSM 数据导入 PostGIS 数据库,支持使用 SQL 进行复杂的空间查询。
  • 优势:数据导入后空间查询速度极快;依托成熟的 PostgreSQL/PostGIS 生态。
  • 局限:初始数据导入耗时较长;需通过样式文件预先定义导入标签,新增查询标签需重新导入数据。

3. DuckDB

  • 功能:列式关系型数据库,利用实验性空间扩展函数 ST_ReadOsm() 直接查询压缩的 .osm.pbf 文件。
  • 优势:无需预先导入和建立索引即可高效查询大型数据集;灵活性高,无需因新增标签而重新导入。
  • 局限:查询时不自动构建几何图形,限制了部分空间分析功能;该扩展仍处于实验阶段。

4. QLever

  • 功能:使用 SPARQL 语言查询 OSM 数据的 RDF(知识图谱)表示。
  • 优势:基于浏览器免安装;支持与 Wikipedia/Wikidata 等外部数据源进行联合查询。
  • 局限:SPARQL 语言相对小众;OSM 数据更新存在约两周的延迟。

5. Nominatim

  • 功能:OSM 官方地理编码器,用于将地址或文本信息转换为地理坐标。
  • 优势:成熟的地理编码方案,提供公共 API。
  • 局限:公共 API 调用频率受严格限制;自托管硬件要求极高(全球数据需 128GB 内存);对不完整或拼写错误的地址支持有限。

6. Pelias

  • 功能:基于 Elasticsearch 的现代开源地理编码器,整合了 OpenAddresses 等补充数据源。
  • 优势:地址匹配能力优于 Nominatim;自托管硬件要求较低(16GB 内存);提供 Docker 便捷部署。
  • 局限:无免费公共 API;自托管需要自行维护复杂的 Elasticsearch 实例。
34. CrowdStrike Official RCA is now out [pdf] (www.crowdstrike.com)

CrowdStrike Channel File 291 事件根本原因分析摘要

事件概述

  • 事件时间:2024年7月19日
  • 影响范围:CrowdStrike Falcon传感器在Windows系统上因接收特定内容更新(Channel File 291)导致系统崩溃(蓝屏)。
  • 恢复状态:截至7月29日,约99%的Windows传感器已恢复在线,与事件前相比连接变化率约1%。

根本原因

事件是多个层面失误共同作用的结果:

  1. 字段数量不匹配:2024年2月发布的传感器7.11版本引入了新的IPC(进程间通信)模板类型,用于检测滥用命名管道的攻击。该模板在定义文件中声明需要21个输入字段,但传感器代码实现仅提供20个输入值给内容解释器。
  2. 越界读取漏洞:上述不匹配导致内容解释器在尝试读取第21个不存在的输入时,发生越界内存读取,进而触发系统崩溃(Bugcheck)。
  3. 测试与验证失效:该缺陷在开发、测试及初期部署阶段均未被发现,原因包括:
    • 测试用例使用通配符匹配第21个字段,未触发错误。
    • 内容验证器基于错误假设(期望21个输入)进行了评估。
    • 缺乏对每个模板字段使用非通配符匹配标准的全面测试。
  4. 部署策略缺陷:有问题的内容实例未能通过分阶段部署流程来提前识别风险。

技术细节

  • 组件关系:快速响应内容通过“通道文件”交付,由传感器的“内容解释器”处理。每个通道文件关联一个预定义的“模板类型”。
  • 崩溃机制:当传感器收到新版Channel File 291后,下次处理Windows命名管道创建通知时,内容解释器尝试访问第21个输入指针,该指针指向无效内存地址,导致页错误(PAGE_FAULT_IN_NONPAGED_AREA)和系统崩溃。
  • 内核驱动作用:CrowdStrike的文件系统过滤驱动(csagent.sys)在内核层运行以实现实时安全监控,这是行业常见实践。此次崩溃源于其处理内容更新时的逻辑错误,而非驱动本身的安全漏洞。

发现与缓解措施

CrowdStrike已识别6项主要发现并实施或计划以下改进:

  1. 编译时验证:在传感器编译阶段增加对模板类型输入字段数量的校验(已于7月27日投入生产)。
  2. 运行时边界检查:为内容解释器添加输入数组边界检查,并修正IPC模板类型的输入数量。相关修复将通过传感器热补丁程序(8月9日前发布)向后移植至所有7.11及以上版本。
  3. 增强测试覆盖:为所有现有和未来的模板类型增加测试用例,要求使用非通配符匹配标准测试每个字段。
  4. 修正内容验证器:在内容验证器中增加检查,防止内容实例包含的匹配标准超过实际提供的输入字段数量(计划8月19日前发布)。同时限制第21个字段仅允许通配符匹配。
  5. 改进模板实例测试流程:确保每个新的模板实例在部署前都经过独立测试。
  6. 实施分阶段部署与客户控制
    • 建立分阶段部署流程,逐步扩大更新范围并进行监控。
    • 向客户提供对快速响应内容更新的更多控制权(如选择部署时间和范围)。

其他行动

  • 第三方审查:已聘请两家独立第三方软件安全供应商对Falcon传感器代码及端到端质量流程进行审查。
  • 生态系统协作:CrowdStrike表示将与微软持续合作,推动在Windows用户空间中实现更多安全功能,以减少对内核驱动的依赖。

结论

此次事件是一次由内容更新中的参数配置错误引发的、通过多层质量保障漏洞放大并最终导致系统崩溃的严重事故。CrowdStrike已针对根本原因实施了技术修复和广泛的流程改进,旨在防止类似事件再次发生,并增强整个更新体系的韧性与客户控制力。

35. How not to say the wrong thing (2013) (www.latimes.com)

文章标题:如何避免说错话(2013)

本文通过两个具体事例,揭示了在他人遭遇危机时,我们常因表达不当而造成伤害。作者苏珊(临床心理学家)和巴里(调解与仲裁专家)由此提出了一个名为“环形理论”的实用沟通框架,旨在帮助人们在此类情境中提供恰当的支持。

问题:错误的表达源于“向内倾倒”

  1. 苏珊的案例:患癌术后,苏珊不愿见客,其同事却以“这不单是关于你”为由要求探视,将焦点转向了自身需求。
  2. 凯蒂的案例:朋友探望脑动脉瘤后仍在恢复期的凯蒂后,却对凯蒂的丈夫帕特说“我没准备好面对这个,不知道自己能否承受”。此言虽因情感冲击而发,却是错误地向更靠近危机中心的人倾倒自己的负面情绪。

核心工具:环形理论 该理论通过一系列同心圆来可视化并规范危机中的沟通顺序:

  1. 构建“抱怨顺序”:在中心圆内写下受创最深之人的名字(如患者本人)。在其外圈,写下按亲疏关系排序的其他人(如配偶、至亲、密友等),形成由内到外的圈层。
  2. 核心规则:“安慰向内,倾倒向外”
    • 中心圈权利:处于中心的人(如患者)可以向任何人、以任何方式表达情绪。
    • 其他人的行为准则
      • 当对内圈(更靠近中心)的人说话时,目标是提供支持。应以倾听为主,若需开口,只说能提供安慰的话(如“我很遗憾”、“这对你一定很难”、“需要我带点吃的吗?”),避免给予建议或陈述自身感受。
      • 当需要宣泄自身震惊、悲伤、无力感或抱怨时,必须找到外圈(比自己更远离中心)的人来诉说。
    • 根本原则:永远不要将负面情绪倾倒在比自己更靠近危机中心的人身上。支持与安慰的方向应始终指向内圈。

理论意义与提醒 该理论将人际间心照不宣的直觉(如不向病人抱怨其外貌可怕)系统化、具体化,并扩展至所有圈层。它既保护了处于风暴中心的人,也为外围支持者提供了清晰的宣泄路径——只需等待与外圈人交谈即可。文章最后提醒,每个人终都有机会成为“中心圈”的那个人。

作者:苏珊·丝克(临床心理学家),巴里·戈德曼(调解与仲裁专家,《和解科学:谈判者理念》作者)。

37. Cats appear to grieve death of fellow pets – even dogs, study finds (www.theguardian.com)

研究背景与目的

猫常被视为冷漠和独立的动物,但美国奥克兰大学发表在《应用动物行为科学》上的一项研究表明,猫在同住的其他宠物(包括同类和狗)死亡后,会表现出明显的悲伤迹象。该研究挑战了猫缺乏社交性的传统观点,并表明动物对失去同伴的心理体验可能具有普遍性。

研究方法

研究人员调查了450多只猫的主人,这些猫近期经历了同住宠物的死亡(约三分之二死去的宠物是猫,其余为狗)。通过主人的问卷报告,评估幸存猫的行为变化。

主要发现

失去同伴的猫会表现出多种类似悲伤的行为,具体包括:

  • 生理与日常活动改变:睡眠困难、食欲下降、减少玩耍。
  • 情绪与行为异常:发出嚎叫声、躲藏、独处时间增加。
  • 社交需求变化:对照顾者或其他宠物表现出更强的依恋和寻求关注,并似乎在寻找失踪的同伴。

影响因素

  • 相处时间与活动:猫与死去同伴共同生活及参与日常活动的时间越长,其表现出的悲伤行为和恐惧感越强烈。
  • 关系质量:幸存猫与死去同伴生前关系越积极,其在睡眠、饮食和玩耍方面的减少越明显。
  • 无关因素:猫是否目睹了同伴的死亡,以及家中宠物的总数,对悲伤表现没有显著影响。

研究局限与替代解释

尽管研究结果支持猫会哀悼的观点,但研究人员也提出了一种替代解释:主人可能将自身的悲痛投射到了幸存的宠物身上。数据显示,经历更深切悲痛的照顾者,更倾向于报告他们的猫在睡眠、独处和躲藏行为上有所增加。这表明主人的主观情绪可能在一定程度上影响了对猫行为的观察与报告。

40. Linux for UX Designers: What I learn after a year of doing design work on Linux (www.chris-wood.design)

Linux 用户体验设计实践:一年后的收获

转向 Linux 的原因

作者于2023年6月成为自由UX设计师后,因以下原因放弃原有操作系统:

  • MacOS:MacBook Pro因苹果停止安全更新而不再安全
  • Windows:系统广告增多、采用暗黑UX模式且加速硬件淘汰
  • 核心诉求:寻找可靠、极简设计、能延长硬件使用寿命的系统

Linux 的使用体验

界面设计优势

  • 登录界面简洁无干扰(无红点提示、广告推送)
  • 工作环境专注:Dock栏、菜单图标、通知均可隐藏
  • 应用普遍采用美观的极简设计,支持亮/暗主题

用户群体变化

  • 从开发者主导扩展至各类用户
  • 2024年7月全球桌面PC Linux使用率达4.5%(ChromeOS的3倍)
  • 德国等地区政府正从Windows转向Linux

硬件兼容性实践

兼容性注意事项

  • Linux可在多种硬件运行,但非预装设备可能出现:
    • WiFi/蓝牙/摄像头不工作
    • 电池续航差/风扇噪音大
  • 推荐方案:购买预装Linux的笔记本电脑

外设连接指南

  • 苹果外设:Magic Mouse/Trackpad/Keyboard通过蓝牙可用(需特殊配对步骤)
  • 绘图板:Wacom即插即用;其他品牌需查官方支持或使用OpenTabletDriver
  • 其他设备:显示器/耳机/麦克风通常可直接使用

设计工具生态

核心工具现状

类别 工具 Linux支持情况
UI设计 Figma 非官方应用可用
Sketch文件 Lunacy可兼容编辑
矢量图形 Inkscape 免费开源(学习曲线较高)
Affinity Designer 付费,可通过兼容层运行
光栅图形 GIMP 免费开源
Krita 免费开源绘画应用
Photopea 免费在线Photoshop替代
版式设计 Scribus 免费开源
字体管理 Font Manager 支持Google Fonts下载
办公软件 LibreOffice/OnlyOffice 兼容微软格式
通讯协作 Teams/Slack/Zoom 均可用

云存储方案

  • Nextcloud:免费开源客户端
  • Google Drive/OneDrive/Dropbox:需付费InSync应用
  • 其他服务:可通过浏览器访问

迁移建议

  1. 选择发行版
    • M芯片Mac:Asahi Linux Fedora
    • 其他设备:Fedora Workstation/Zorin OS/Ubuntu
  2. 验证流程
    • 测试所有设备兼容性
    • 确认所需软件可用性
  3. 购买建议:选择预装Linux的设备(如Framework笔记本)

学习资源

  • 发行版官方文档
  • 社区论坛(如Fedora论坛)
  • Linux新手向子版块:r/linux4noobs、r/linuxquestions
  • 制造商专项支持(如Framework Linux团队)

作者通过一年实践证明了Linux在UX设计领域的可行性,其核心优势在于系统简洁性、硬件生命周期延长以及日益完善的创意工具生态。

42. Ask HN: How to Price a Product
43. Blackhouses of Scotland (www.amusingplanet.com)

苏格兰的黑屋是数百年前苏格兰高地和爱尔兰常见的传统住宅。这种建筑狭长,常并列建造,墙体为干垒石墙,屋顶覆盖草皮或茅草。由于中心区域常年燃烧泥炭火且没有烟囱,烟雾通过多孔屋顶渗出,逐渐将屋顶熏黑,因此得名。黑屋结构简陋,窗户极小,室内烟雾弥漫。

烟雾具有实用价值:能驱除屋顶的虫害,熏黑的茅草每年更换后还可用作田间肥料。黑屋内人与牲畜同住,中间仅以隔断分开,共用一个门。动物活动区地面为土质,并设有排污沟。部分空间也用于存放和加工谷物等农产品。

“黑屋”这一名称并非源于烟熏痕迹,而是与19世纪末出现的“白屋”形成对比。白屋采用石灰砂浆砌石建造,并依据卫生法规将人与牲畜分离。黑屋一直沿用至20世纪70年代,后期增设了壁炉和烟囱。

如今,刘易斯岛的盖拉南村和阿诺尔村是观赏黑屋的典型地点。盖拉南村有修复的黑屋和博物馆;阿诺尔村则保留了大量废墟,其中一座完整的黑屋自20世纪60年代起作为博物馆开放,内部陈设保留原貌,生动再现了昔日的生活场景。

44. A/B testing mistakes I learned the hard way (newsletter.posthog.com)

A/B测试常见错误及避免方法

1. 模糊的假设

  • 问题:假设不清晰,导致无法确定测量指标或结果分析困难。
  • 示例:❌ “更改结账按钮颜色会增加购买”未说明原因和测量方式。
  • 改进:✅ 明确测试原因、变更内容和预期结果。例如:“用户研究显示结账按钮不醒目,更改颜色将提高点击率和购买量”。
  • 要求:假设需回答三个问题:为何测试?测试什么?预期发生什么?

2. 忽略细分数据(辛普森悖论)

  • 问题:整体数据可能掩盖子组差异,导致错误结论。
  • 示例:新注册流程整体转化率提升,但细分发现移动端提升、桌面端下降。
  • 方法:按用户属性(如设备类型、地理位置、订阅状态等)分析数据。

3. 包含无关用户

  • 问题:测试包含无法或不受功能影响的用户,扭曲结果或延长测试时间。
  • 示例:定价实验中包括已订阅用户。
  • 解决:在代码中先排除无关用户,再分配实验组(如下示例为正确做法)。
    // 正确顺序:先检查用户资格,再获取实验标识
    function showNewChanges(user) {
      if (user.hasCompletedAction) return false; // 先排除无关用户
      if (posthog.getFeatureFlag('experiment-key') === 'control') return false;
      return true;
    }
    

4. 提前下结论(窥视问题)

  • 问题:基于未完成的中间数据做决策,统计显著性可能随时间变化。
  • 案例:Airbnb发现测试早期可能显著,后期回归中性。
  • 建议:预先计算所需测试时长并坚持运行,避免中途决策。

5. 未进行小规模预测试

  • 问题:直接对所有用户开放实验,若出错(如崩溃)则无法重置测试。
  • 方案:分阶段发布,先小范围验证功能、日志、分组比例等,再扩大范围。

6. 忽视反向指标

  • 问题:只关注核心指标(如转化率),忽略间接负面影响。
  • 示例:注册页优化后注册量上升,但激活率和日活下降,可能因误导用户。
  • 措施:监控产品健康指标(如留存、会话时长),可采用长期保留测试验证长期影响。

总结:成功的A/B测试需确保假设清晰、细分分析数据、排除无关用户、坚持预定期限、分阶段发布并监控反向指标,以避免常见陷阱。