2024-10-24

30 篇热帖

1. Rider is now free for non-commercial use (www.jetbrains.com)

Rider 现在免费用于非商业使用

内容是一个网页页面,旨在推广 JetBrains 的 Rider IDE(集成开发环境)。标题明确指出 Rider 现在可以免费用于非商业用途。网页结构主要包括导航栏、产品信息区域和交互按钮,以引导用户进行下载、购买或试用操作。

主要点和结构:

  • 标题信息:页面标题强调 Rider 对非商业用户免费,吸引开发者关注。
  • 导航栏:包含链接到“Rider”、“Download”(下载)、“购买”和“试用”,方便用户快速访问相关功能。
  • 下载功能:页面提供下载按钮,允许用户直接获取 Rider 软件,适用于非商业使用。
  • 商业选项:针对商业用户,页面提供购买链接,以获取正式许可。
  • 试用支持:页面包含试用选项,让用户体验 Rider 的功能后再做决定。
  • 脚本和样式:页面使用 JavaScript 脚本处理交互功能(如下拉菜单、弹出窗口),以及 CSS 样式确保布局美观和响应式设计。
  • 整体目的:该页面作为产品推广平台,旨在扩大 Rider 的用户基础,通过免费非商业许可吸引个人开发者和学习者,同时维持商业销售模式。

关键功能:

  • 用户可以一键下载 Rider 的免费版本。
  • 导航清晰,便于探索产品详情、定价和试用信息。
  • 页面结构优化了用户体验,支持多种设备访问。

总结而言,这个网页专注于宣传 Rider 的免费非商业使用政策,并提供相关工具和链接,帮助用户轻松获取和评估该软件。

2. Show HN: 2048 turned 10 this year, I built an updated version to celebrate (play2048.co)
3. Show HN: Wall-mounted diffusion mirror that turns reflections into paintings (www.matthieulc.com)

文章摘要:

本文介绍了一位作者受实时AI图像生成技术启发,从概念探索到实物制作,最终开发出一款可壁挂的“扩散镜”艺术装置的全过程。

  • 创作动机与概念:作者认为,AI降低了艺术创作的技能门槛,能激发普通人的创造力。基于此,他利用StreamDiffusion对摄像头画面进行实时AI处理,将普通影像转化为艺术风格的动态画作,并希望赋予其“物体感”和交互性。
  • 初代设备(原型):作者使用树莓派5、红外摄像头、LCD屏幕等部件,将设备悬挂于墙上。其特点是利用红外光在暗处工作,生成独特画面。主要挑战是帧率较低,尽管通过TensorRT等技术优化,但性能仍有提升空间。作者分享了具体的硬件清单、软件代码仓库(使用RunPod托管服务器)以及预处理滤镜(如边缘检测、上色、模糊)对最终艺术风格的关键影响。
  • 2.0版本(改进版):因原型机收到关注和订单,作者推出了更易于制作和“发货”的改进版本。主要改进包括:
    • 硬件简化:用更小巧便宜的树莓派Zero替代树莓派5,并设计了专用的3D打印支架与激光切割背板,使结构更稳固、整洁。
    • 性能提升:代码清理并采纳社区建议,帧率有所提高(尽管在树莓派Zero上仍低于笔记本电脑,但预计可优化)。
    • 用户体验优化:通过添加WiFi适配器,让设备能自建热点,用户可通过SSH连接配置,无需外接鼠标键盘,极大简化了首次设置流程。
  • 资源与获取:作者提供了完整的制作指南、代码仓库,并提及可联系他获取成品设备。

整个项目体现了从创意到工程实现的完整闭环,强调了预处理与提示词同等重要,并展示了通过工程优化提升艺术装置可用性的实践。

4. AWS data center latencies, visualized (benjdd.com)

AWS 数据中心延迟可视化概览

该文章通过可视化的方式,展示了AWS不同数据中心(区域)之间的网络延迟数据。主要内容与要点如下:

核心主题

文章聚焦于AWS云服务各区域间的网络响应时间(延迟),利用数据可视化手段(如地图、图表等)呈现这些技术指标,使复杂的网络性能数据变得直观易懂。

关键信息点

  1. 延迟数据来源:数据通常基于实际的网络测试或AWS官方提供的性能指标,反映了在不同地理位置部署的服务之间的通信速度。
  2. 可视化形式:可能采用了交互式地图、热力图、图表对比等方式,清晰展示哪些区域对之间延迟较低(连接快),哪些区域对之间延迟较高(连接慢)。
  3. 影响因素:延迟主要受物理距离(光速限制)、网络路由路径海底光缆布局以及本地网络基础设施等因素影响。
  4. 实用意义:此类可视化对于架构师和开发者至关重要,可帮助他们:
    • 为全球用户选择最优的AWS区域部署应用。
    • 设计跨区域灾备或高可用架构时评估数据同步的可行性。
    • 优化全球业务的用户体验,减少网络延迟带来的卡顿。

价值与目的

文章的核心目的是将抽象的网络性能数据转化为可操作的洞察,帮助AWS用户做出更明智的基础设施决策,从而提升应用程序的性能、可靠性和成本效益。

5. Everything I built with Claude Artifacts this week (simonwillison.net)

本文介绍了作者在一周内使用Claude Artifacts功能构建的14个交互式单页应用(SPA)项目。Claude Artifacts允许用户通过提示词让Claude生成HTML、CSS和JavaScript代码,并在界面内实时预览和迭代,最终可导出代码。作者强调该功能非常适合快速原型开发和解决即时问题。

以下是作者本周构建的主要项目及其用途:

  1. URL to Markdown with Jina Reader:一个Web界面,输入URL后通过Jina Reader API转换为Markdown格式,方便复制。解决了在移动端Safari中复制网页文本到LLM的困难。
  2. SQLite in WASM演示:基于@sqlite.org/sqlite-wasm包的交互式演示,展示了SQLite在WebAssembly中的运行。
  3. Extract URLs:一个工具,用于从粘贴的富文本HTML中提取所有底层URL。
  4. Clipboard Viewer:一个调试工具,可粘贴不同类型的剪贴板内容(纯文本、富文本、文件、图像等)并查看浏览器剪贴板API的信息。
  5. Pyodide REPL:一个概念验证,验证了在Claude Artifacts环境中可以成功加载并运行Pyodide(编译为WebAssembly的Python)。
  6. Photo Camera Settings Simulator:一个未完成的实验性项目,试图用JavaScript模拟相机设置,探索了Fabric.js库。
  7. LLM pricing calculator:一个完成的工具,用于计算和比较LLM(特别是Google Gemini)的API定价,源于作者对视频抓取项目的验证需求。
  8. YAML to JSON converter:一个实时转换工具,在输入YAML时显示对应的JSON,用于学习YAML语法。
  9. OpenAI Audio:本周最有趣的项目。一个Web页面,可请求麦克风权限,录制音频片段,进行Base64编码并发送到OpenAI Audio API。展示了Claude Artifacts可构建原型,并轻松迁移到外部托管完成开发。
  10. QR Code Decoder:一个快速原型,用于粘贴或拖放QR码图像并解码显示内容(带超链接)。
  11. Image Converter and Page Downloader:一个原型工具,可将图片转换为Base64 URL并嵌入页面,生成可“另存为HTML”的自包含画廊页面,并提供下载链接。
  12. HTML Entity Escaper:一个按需构建的工具,用于转义文本中的HTML实体(如引号、尖括号、&符号)。
  13. text-wrap-balance-nav:一个CSS实验,演示text-wrap: balance属性在导航栏中的效果。
  14. ARES Phonetic Alphabet Converter:为业余无线电通信志愿者构建的交互式工具,用于将文本转换为语音字母表代码。

作者指出,大多数项目构建时间不超过五分钟,即使较复杂的项目(如OpenAI Audio)也仅需21分钟。他高度评价Artifacts是“最有用的工具之一”,可用于满足好奇心、快速原型开发、库研究和解决即时问题。

同时,作者也提到了Artifacts的局限性,例如无法直接进行跨域API调用、提交表单或链接到外部页面。他正考虑基于所学经验,开发一个自定义的替代方案。

最后,作者鼓励用户尝试使用Artifacts,并提供了更多示例项目的链接。

6. Show HN: Agent.exe, a cross-platform app to let 3.5 Sonnet control your machine (github.com)

Agent.exe 项目总结

项目概述
Agent.exe 是一个概念验证(Proof of Concept)的跨平台桌面应用,允许用户通过 Claude 3.5 Sonnet 的“计算机使用”功能直接控制本地计算机。该项目基于 Electron 构建,旨在简化 AI 对计算机操作的集成,但开发者明确表示不打算长期维护或合并拉取请求,鼓励用户自行分叉和扩展。

开发动机
开发者希望测试 Claude 新发布的计算机使用 API 的实际效果,并认为官方提供的示例项目较为复杂。因此,他创建了这一轻量级 Electron 应用,使 Claude 3.5 Sonnet 能直接操控本地计算机。原计划加入“半自动”模式(每步需用户确认),但由于操作速度较慢且模型偶尔会混淆,目前设计为可通过“停止”按钮随时中断任务。

主要功能与使用步骤

  1. 技术栈:基于 Electron 应用,支持跨平台运行。
  2. 安装与运行
    • 克隆 GitHub 仓库:git clone https://github.com/corbt/agent.exe
    • 进入项目目录并安装依赖:cd agent.exe && npm install
    • .env.example 重命名为 .env,并添加 Anthropic API 密钥。
    • 启动应用:npm start
  3. 使用方式:启动后,通过提示词指示 Claude 在计算机上执行任务。

系统支持与限制

  • 支持系统:目前主要适配 macOS;理论上支持 Windows 和 Linux(依赖项均为跨平台)。
  • 已知限制
    • 仅能在主显示器上操作。
    • 允许 AI 完全接管计算机控制权,存在潜在安全风险。
    • 其他未列举的潜在问题。

实用建议
开发者指出,Claude 在操作中偏好使用 Firefox 浏览器。若安装 Firefox 并优先使用,其行为表现会更稳定;否则,AI 可能会尝试使用其他浏览器。

项目状态与路线图
该项目由开发者在 6 小时内快速构建,属于实验性质,目前无长期发展计划。但开发者表示会审查并合并“看起来有趣”的拉取请求。

7. Yes, we did discover the Higgs (theoryandpractice.org)

本文是对“希格斯发现是官僚产物而非物质现实”这一观点的反驳,旨在澄清物理学界的共识与证据。主要论点如下:

  1. 实验证据的客观性:发现希格斯玻色子的核心证据是独立于复杂数学理论的、直观的“共振峰”(即数据图中背景之上的“鼓包”)。这源于能量动量守恒和特殊相对论等基础物理原理,而非高深理论。LHC的实验(ATLAS和CMS)在相同能量位置(约125 GeV)观测到了高度显著的共振峰。

  2. 统计严谨性与共识:统计显著性远超5σ(千万分之一)的发现门槛,且已考虑了多重检验(“别处效应”)。物理学界以共识而非简单多数投票运作,过程缓慢但严谨保守,几乎全球上万名相关物理学家均认可发现了一种新粒子,且其性质与希格斯玻色子相符。

  3. 对“现代官僚主义”质疑的回应:大型合作实验的复杂流程是为了确保稳健和可理解性,旨在避免错误发现。其严谨性体现在“盲分析”、独立实验交叉验证以及开放数据和统计模型等方面,这些是保障可信度的措施,而非单纯官僚主义。

  4. 希格斯机制的理论与现实意义

    • 理论意义:希格斯机制是粒子物理标准模型的核心,它解释了基本粒子的质量来源,并与放射性衰变、弱相互作用等现象相关联。理解该机制对探索宇宙更深层奥秘至关重要。
    • 现实关联:虽不直接影响日常生活,但相关原理支撑了核能、核医学等技术。大型科学项目往往催生重大衍生技术(如万维网、超导材料商业化),且基础研究常为未来突破铺垫。
  5. 对科学信任问题的探讨:作者承认科学信任是重要议题,但指出粒子物理学领域已建立包括预注册、盲分析、开放科学在内的严格程序来应对p值滥用等关切。所谓的“惯例性门槛”(如5σ)在证据压倒性面前并非决策的唯一或机械依据。

  6. 回应复杂性质疑:科学本身常涉及无人能完全通晓的复杂系统,但通过尺度分离和专家协作,整体系统得以构建和理解。类似地,物理学家理解各自负责的部分,并通过合作构建了完整的发现图景。

8. Show HN: RF Hunter – Find hidden cameras and other devices (github.com)

RF Hunter V4.0 项目摘要

项目概述
RF Hunter V4.0 是一款基于 ESP32微控制器AD8317射频检测器 的射频信号扫描仪,用于检测环境中的射频信号,适用于发现隐藏摄像头、窃听设备等射频装置。信号强度通过 OLED显示屏 实时显示。

核心组件

  • ESP32 开发板
  • AD8317 射频功率检测器
  • TP4056 锂电池充电控制器
  • 3.7V 锂电池
  • 升压转换器(3.3V转9V)
  • OLED显示屏(128x64,I2C接口)
  • 10k电位器、压电蜂鸣器、电源开关

主要改进(V4.0版本)

  • 采用卡扣式外壳,无需工具组装。
  • 底部预留电池空间,内置充电控制器,仅需单块电池,续航可达数周或数月。
  • 升压转换器替代9V电池,提升便携性与能效。

构建流程

  1. 电源电路组装:连接电池、TP4056充电控制器、电源开关、ESP32的5V VIN引脚及升压转换器,调整输出至9V为AD8317供电。
  2. 射频检测器连接:将AD8317的VOUT引脚连接至ESP32 GPIO 34。
  3. 外设连接
    • OLED显示屏:VCC接ESP32 3.3V,SDA/SCL接GPIO 21/22。
    • 电位器:用于调节灵敏度,输出接GPIO 35。
    • 蜂鸣器:用于强信号报警,接GPIO 5。
  4. 固件烧录:通过PlatformIO上传提供的代码(无需修改)。
  5. 外壳组装:卡扣式设计直接拼接。

使用方法

  • 开机后OLED显示实时信号强度。
  • 通过电位器调整检测灵敏度。
  • 强射频信号触发蜂鸣器报警。

项目信息

  • 作者:Matthew Rogers(美国)
  • 许可证:GNU GPLv3
  • 资源:硬件物料清单及代码可在GitHub仓库获取,接线细节见文档。
  • 社区反馈:鼓励用户在Twitter分享制作成果,并提交改进建议。
9. Launch HN: Skyvern (YC S23) – open-source AI agent for browser automations (github.com)

Skyvern (YC S23):开源AI浏览器自动化代理

核心概述

Skyvern 是一个利用大语言模型(LLMs)和计算机视觉来自动化浏览器工作流的开源AI代理。它提供了一个兼容 Playwright 的 SDK,在 Playwright 基础上增加 AI 功能,并配备了一个无代码工作流构建器,旨在帮助技术和非技术用户在任何网站上自动化手动流程,取代脆弱或不可靠的自动化方案。

工作原理与优势

传统浏览器自动化依赖于为特定网站编写脚本(如 DOM 解析、XPath),一旦网站布局更改便会失效。

  • 核心技术:Skyvern 采用视觉LLM来学习和与网站交互,灵感来源于任务驱动的自主代理(如 BabyAGI、AutoGPT),并赋予其通过 Playwright 等库与浏览器交互的能力。
  • 代理群组:它使用一个代理群组来理解网站、规划并执行操作。
  • 主要优势
    1. 泛化能力强:能操作从未见过的网站,无需定制代码。
    2. 抗布局变化:不依赖固定的 XPath 或选择器,能抵抗网站布局更新。
    3. 工作流复用:可将单个工作流应用于大量网站。

安装与部署

提供多种部署方式:

  • Skyvern Cloud:托管云版本,无需管理基础设施,包含反机器人检测、代理网络和验证码解决器。
  • 本地部署
    • pip 安装:使用 pip install "skyvern[all]",默认使用 SQLite,可选本地 PostgreSQL。
    • Docker Compose:容器化部署所有组件(Postgres、API、UI),避免本地安装 Python/Node。
  • 开发者设置:支持使用 uv 进行本地开发环境搭建。

SDK 与核心功能

Skyvern 扩展了 Playwright,新增了 AI 驱动的页面命令AI 增强的 Playwright 操作

  • 核心 AI 命令
    • page.act(prompt): 使用自然语言执行操作。
    • page.extract(prompt, schema): 从页面提取结构化数据。
    • page.validate(prompt): 验证页面状态。
    • page.prompt(prompt, schema): 向 LLM 发送任意提示。
  • 高级工作流命令(通过 page.agent 调用):
    • run_task: 执行复杂的多步骤任务。
    • login: 使用存储的凭据进行身份验证。
    • download_files: 导航并下载文件。
    • run_workflow: 执行预构建的工作流。
  • 三种交互模式:支持传统选择器、纯自然语言提示、以及“AI 回退”模式(先尝试选择器,失败则使用 AI)。

关键特性

  • 任务与工作流任务是基本单元,工作流可将多个任务串联,支持循环、数据提取、验证等高级功能。
  • 表单填写与数据提取:能根据目标自动填写表单,并可通过定义 JSON 模式来提取结构化数据。
  • 文件下载:自动下载文件并上传至云存储。
  • 身份验证支持:支持多种身份验证方法,包括 2FA(TOTP) 和主流密码管理器集成(如 1Password、Bitwarden)。
  • 实时直播:可实时查看代理的浏览器视图,便于调试和干预。
  • 集成支持:支持 Model Context Protocol (MCP) 以使用任意 LLM,并可与 Zapier、Make.com、N8N 等自动化平台集成。

支持的 LLM 供应商

兼容多种 LLM,包括 OpenAI、Anthropic、Azure OpenAI、AWS Bedrock、Gemini、Ollama(本地模型)以及任何兼容 OpenAI API 格式的端点。

实际应用案例

  • 批量从不同网站下载发票。
  • 自动化求职申请流程。
  • 为制造公司自动化材料采购。
  • 在政府网站注册或填表。
  • 自动填写各类联系表单。
  • 从保险商处获取报价。

许可与贡献

  • 开源许可:核心逻辑以 AGPL-3.0 许可开源,托管云版本中的反机器人措施除外。
  • 贡献:欢迎提交 PR 和建议,提供贡献指南和需要帮助的问题列表。
  • 遥测:默认收集基本使用统计信息,可通过环境变量关闭。
10. Goldman and Apple 'illegally sidestepped' obligations to credit-card customers (finance.yahoo.com)

高盛与苹果因苹果信用卡违规被罚8980万美元

主要处罚

  • 美国消费者金融保护局(CFPB)宣布对高盛和苹果罚款8980万美元
  • 高盛支付6480万美元:其中1980万美元赔偿给消费者,4500万美元为民事罚款。
  • 苹果支付2500万美元:因其在苹果信用卡的营销与客户服务中的角色。

违规行为

  • 纠纷处理失职:苹果未能将数万笔客户对苹果信用卡交易的纠纷转交给高盛;高盛在收到纠纷后,未遵守多项联邦调查规定。
  • 误导消费者:两家公司误导大量消费者,使其误认为购买苹果设备时可自动获得免息分期付款,但实际被收取利息。
  • 退款处理错误:高盛在退款处理上误导消费者,导致其支付额外利息。
  • 系统未就绪仍上线:调查发现,苹果信用卡上线前四天,高盛董事会已知关键纠纷处理系统因技术问题“未完全准备就绪”,但双方仍按计划推出。

后续影响与回应

  • CFPB:禁止高盛发行新信用卡,除非其能证明具备合法合规运营的能力。CFPB局长表示“大型科技公司和华尔街机构不能自视为法律豁免对象”。
  • 高盛:回应称已努力解决上线后遇到的技术与运营挑战,并与受影响客户处理完毕,对达成和解感到满意。
  • 市场反应:处罚公布后,苹果股价当日下跌2%,高盛股价基本持平。
  • 合作关系背景:2019年双方合作推出苹果信用卡,高盛负责信贷发放与账户服务,苹果负责界面设计、营销与广告。协议中苹果可对高盛造成的延迟处以最高2500万美元罚款。
11. Pretty.c (github.com)

Pretty C 概述 Pretty C 是一个兼容 C 语言的新脚本语言,旨在通过动态类型、通用迭代、资源跟踪等特性增强程序。它完全向后兼容 C 及其所有库,灵感来源于 Lua、Python、JavaScript 和 Lisp。Pretty C 是一个仅包含头文件(pretty.h)的库,可轻松集成到现有 C 项目中。

核心目标

  1. 提供丰富的语法糖,极大提升 C 代码的可读性和简洁性。
  2. 旨在替代其他脚本语言,同时保持 C 语言的高性能和强类型特性。
  3. 通过引入单个头文件,使任何 C 代码库对初学者更加友好。

主要特性与便利性

  • 头文件集成:仅需包含 pretty.h 即可使用所有功能。
  • 简化宏与类型:提供 maxminlenstring (char*)、any (void*) 等常用宏和类型别名。
  • 可读性增强:引入 eqisabovebelownil 等关键词,以及 elififntuntil 等控制流别名。
  • 类型推断与泛型:支持 varletlocal 进行类型推断(依赖于 GCC/Clang 或 C23+);提供泛型 print/printlnequal 函数(C11+)。
  • 可读三元表达式:引入 when...then...other/otherwise 语法替代传统三元运算符。
  • 高级循环宏
    • foreach:遍历数组或内存区域。
    • forthese:遍历可变参数列表。
    • fortimes:重复执行指定次数。
    • forrange/forrangeby:在数值范围内迭代。
  • 内存管理宏
    • new:类似 C++ 的分配构造宏。
    • vector:快速分配并初始化数组。
    • deletefree 的别名。
  • 块作用域工具
    • lambda:支持嵌套函数/闭包(需要 GCC/Clang 或 C++)。
    • with:确保资源(如文件、内存)的自动释放。
    • try/catch:提供结构化错误处理机制。

入门与使用 可通过克隆 GitHub 仓库或直接复制 pretty.h 文件获取。该库通过 C 预处理器集成,无需编译步骤。

示例 文章展示了一个用 Pretty C 重新实现的 head 工具示例,演示了 withfortimeswhen...then...otherwise 等语法的简洁用法。

13. Goodbye from a Linux Community Volunteer (lore.kernel.org)

Anubis 网站防爬虫系统说明

系统目的
为抵御AI公司大规模、侵略性的网站数据抓取行为,管理员部署了名为 Anubis 的防护系统。此类抓取活动易导致网站服务中断,影响正常用户访问。

运作机制

  • 采用类似 Hashcash工作量证明(Proof-of-Work) 机制。
  • 设计原理:对单个用户而言,额外计算负载可忽略不计;但对大规模爬虫而言,将显著增加抓取成本,从而抑制恶意抓取。

临时性与未来计划

  • 当前方案为 临时过渡措施,旨在为开发更精准的识别方案争取时间。
  • 最终目标:通过浏览器特征识别(如字体渲染方式)等指纹技术,自动区分合法用户与自动化爬虫,从而无需对大多数正常用户展示验证页面。

使用注意事项

  • Anubis 依赖现代 JavaScript 功能,若使用 JShelter 等隐私安全插件可能被禁用。
  • 请在此域名下 临时禁用 JShelter 或类似插件,以确保访问正常。
14. Show HN: Satoshi9000 analog BTC key generator (mechanical)
15. NetGuard – rootless Android outbound per-app OSS firewall, like LittleSnitch (netguard.me)

NetGuard – 无需Root的Android应用级出站防火墙

NetGuard是一款专为Android设计的防火墙应用,提供无需Root权限的简单和高级网络访问控制功能。用户可以针对单个应用程序分别允许或阻止其访问Wi-Fi和/或移动数据连接。阻止互联网访问有助于减少数据使用量节省电量增强隐私保护

主要特性

  • 易用且无需Root
  • 100%开源,无电话回拨、无追踪或分析、无广告
  • 支持Android 5.1及以上版本
  • 支持IPv4/IPv6的TCP/UDP协议及网络共享
  • 支持多设备用户
  • 可选功能:屏幕亮起时允许、漫游时阻止、阻止系统应用、应用访问网络时通知、记录每个应用每个地址的网络使用情况
  • 提供Material Design主题,支持明暗模式

Pro版高级功能(需应用内购买)

  • 查看流量日志:显示并导出所有应用的详细出站IP流量日志(导出格式为PCAP,可用Wireshark打开)
  • 网络流量过滤:按地址和应用选择性阻止网络流量
  • 新应用通知:收到新应用安装通知时可直接设置允许或阻止
  • 网速图表通知:在状态栏通知中显示当前网速图表
  • 外观主题:可额外选择五种应用主题(均有明暗变体)
  • 支持开发:用于支持应用持续开发、功能改进、错误修复及适配新Android版本

捐赠与Pro功能激活

用户可通过一次性捐赠获取NetGuard Pro功能(包括未来更新),支持GitHub或F-Droid版本。捐赠方式包括:

  • €0.10或以上:可在一台Android设备上激活Pro功能
  • €7或更多:可在所有个人拥有的Android设备上激活Pro功能 捐赠方式支持PayPal、信用卡、SEPA银行转账、比特币(BTC)。捐赠后,Pro功能激活说明将发送至PayPal邮箱。

注意:Google Play商店版本的Pro功能仅能通过Play商店购买激活,不支持跨平台使用。

条款与隐私

  • 捐赠为自愿行为,不予退款
  • 捐赠者需承担因退款可能产生的手续费
  • NetGuard按“现状”提供,具体条款见许可证
  • 隐私政策:承诺不泄露或出售用户隐私敏感信息(法律要求除外)
16. iOS 18.2 Lets EU Users Delete App Store, Safari, Messages, Camera and Photos (www.macrumors.com)

根据提供的文章内容,以下是主要信息的摘要:

iOS 18.2 对欧盟用户的核心功能更新: 自 iOS 18.2 起,位于欧盟的 iPhone 用户可以完全删除一系列核心应用程序,包括 App Store、Safari、信息、相机和照片。这是苹果为遵守欧盟《数字市场法》(DMA)而做出的调整。

  • 可删除范围: 除了电话设置应用外,欧盟用户现在可以删除几乎所有系统预装应用。
  • 应用恢复: 已删除的应用(如 App Store)可以通过设置应用中的“App 安装”部分重新下载。
  • 地区差异: 在美国等其他地区,用户只能隐藏这类核心应用,而无法完全删除并替换为第三方应用。

背景与相关动态:

  1. 合规承诺: 苹果此前已表示计划调整其在欧盟的 DMA 合规方案,此项更新是其承诺的一部分。
  2. 其他焦点话题:
    • 为谷歌辩护: 苹果向欧盟提交反馈,警告欧盟要求谷歌向 AI 竞争对手开放服务的提案可能对用户隐私、安全和保障构成风险。
    • CarPlay Ultra 扩展: 新一代 CarPlay Ultra 计划从目前的阿斯顿·马丁车型,扩展至现代、起亚和捷尼赛思等更多汽车品牌。
17. Show HN: Which animal shares your body fat percentage? (animalbodyfatmatch.netlify.app)

这是一个互动网页应用,其主要功能是:根据用户输入的体脂百分比,匹配并显示出与该数值最接近的动物。

  • 核心功能:基于体脂率进行人与动物的匹配。
  • 应用形式:被描述为“有趣且互动”(fun and interactive)。
  • 目的:让用户发现与自身体脂率相同的动物“毛茸茸的对应物”(furry counterpart)。
18. Playstation Vita Architecture (Part 1) (www.copetti.org)

本文详细解析了PlayStation Vita的硬件架构,重点涵盖型号变体、中央处理器、专用协处理器以及内存系统。

型号变体

PS Vita在其生命周期中推出了三个硬件版本:

  • 初代(Fat):系列首款,配备OLED屏幕。
  • Slim修订版:架构相同,但将OLED屏幕换为LCD以降低成本,取消了3G版本,并略有增大eMMC存储(使其能提供约1GB的内部存储)。
  • PlayStation TV:是非便携式的初代主板版本,具有不同的I/O接口。 本文的核心分析适用于所有型号。

中央处理器 (CPU)

PS Vita的主处理器是一个由东芝制造的Kermit片上系统(SoC),采用了堆叠芯片(SCS)封装技术,将多个芯片垂直堆叠以节省空间和增加带宽。

主CPU:ARM Cortex-A9 MPCore

该SoC的核心是一个四核ARM Cortex-A9 MPCore,主频最高为500 MHz,采用ARMv7-A指令集架构。

  • 核心特性
    • 乱序执行:通过寄存器重命名提高指令级并行性。
    • 2发射超标量:每个周期可尝试执行两条指令。
    • 动态分支预测
    • TrustZone:硬件安全扩展,支持安全与非安全世界的隔离运行环境。
  • NEON媒体处理引擎:一个协处理器,用于处理向量和浮点运算。它执行VFPv3(浮点运算)和NEONv1(高级SIMD向量运算)两套指令集,两者共享寄存器文件但功能互补。NEON旨在进行多媒体数据并行处理。
  • 缓存:每个核心拥有64 KB的L1缓存(指令和数据各32 KB)。所有核心共享一个2 MB的L2缓存,由Primelink(后更名CoreLink)控制器管理。
  • 总线:核心集群内部使用AXI协议通信,而与外部组件通信则使用OCP协议。

多媒体协处理器:Venezia

这是一个由东芝设计的独立处理器集群,专用于图像和音频处理,是原PSP“媒体引擎”的继任者。

  • 架构:由8个MeP-c5核心组成,运行在266.7 MHz。
  • VLIW指令集:采用超长指令字架构,每条指令可同时编码三个操作(两个给图像协处理器,一个给CPU)。
  • 图像处理单元(IVC2):每个核心包含一个支持64位SIMD指令的图像处理单元,拥有256位累加器。
  • 存储:集群拥有256 KB的L2缓存。
  • 访问方式:通过名为“Codec Engine”的抽象API访问,执行如AVC视频解码等具体任务,程序员不直接操作底层硬件。

PSP兼容性CPU

Kermit SoC内部还包含一个MIPS32 4k CPU,这是初代PSP所用的同款处理器,专门用于向下兼容PSP和PS1游戏

  • 该MIPS CPU不直接连接其他硬件,需要通过“远程过程调用”(RPC)向主ARM CPU请求服务。
  • PSP模拟器运行在该CPU上,同时保留了PSP原有的16 KB Scratchpad SRAM。

内存系统

PS Vita配备了多种类型的内存:

  • 主内存512 MB LPDDR2 SDRAM,用于系统和游戏的主要工作区域。LPDDR2是低功耗移动设备专用的内存标准。
  • 图形内存128 MB Custom DRAM (CDRAM),即传统的单数据率SDRAM,专供GPU使用,通过两个512位总线连接。
  • 片上专用SRAM
    • 2 MB “Camera SRAM”。
    • 32 KB “SPAD32K”。
    • 128 KB “SPAD128K”。
    • 16 KB “Scratchpad”(为MIPS CPU和PSP模拟器保留)。
    • 4 KB “SceCompatSharedSram”。 这些SRAM块均由操作系统保留使用。

总结:PlayStation Vita通过高度集成的Kermit SoC实现了性能与功耗的平衡。它结合了当时先进的四核ARM Cortex-A9 CPU、用于图形运算的专用内存、强大的多媒体协处理集群Venezia以及用于向下兼容的MIPS CPU,构成了一个复杂而高效的游戏掌机硬件架构。

19. Lawsuit challenges Virginia City's use of cameras for warrantless surveillance (ij.org)
20. Show HN: Open-source low-code email editor (github.com)

根据提供的内容,无法生成有意义的摘要。

所提供的文本并非关于“开源低代码邮件编辑器”的文章正文,而是 GitHub 网站顶部的通用导航菜单和页脚元素,包括平台功能(如 Copilot、Actions、Codespaces)、解决方案分类、支持信息以及用户界面组件(如反馈表单、搜索框、登录/注册入口)。

其中未包含任何与邮件编辑器项目相关的描述,例如其目的、功能、技术栈、使用场景或演示。

要获得所需的摘要,请提供该项目的实质介绍内容、README文档或相关功能说明。

21. Linus Torvalds comments on the Russian Linux maintainers being delisted (www.phoronix.com)

近日,有关多名与俄罗斯有关的Linux驱动维护者被移除主线内核维护者名单(_MAINTAINERS_文件)的消息引发广泛关注和讨论。此次变动似乎因维护者的俄罗斯身份或使用俄罗斯邮箱而发生,引起受影响维护者的惊讶与不满,尤其是缺乏公开的“合规要求”说明。

Greg Kroah-Hartman作为提出该移除补丁的开发者,目前尚未在邮件列表中回应,但Linus Torvalds(Linux内核创始人)今日对此事作出公开评论。Linus表示该变动理由明确,不会被回滚,并批评俄罗斯网军试图通过匿名账号推动回滚。此外,Linus指出合规要求不仅仅是美国方面的措施,俄国制裁是全球性的,并强调自己不会支持俄罗斯的侵略行为。

目前虽然移除决定得到了Linus的认可,但尚不清楚今后这些被移除维护者的补丁是否仍可被接受,以及是否会有其它新限制。因补丁来源常难以确定,除非使用明确关联区域或组织的邮箱。

针对外界是否存在NDA(保密协议),Linus公开回应表示他不是律师,不会讨论法律细节,也不会和网络上的陌生人讨论法律问题,尤其怀疑这些人可能是有组织的行动者。

相关信息已进一步披露关于Linux内核因俄罗斯制裁所产生的“合规要求”细节,但仍有许多不确定性。

23. Lost Silk Road Cities Discovered High in the Mountains of Central Asia (www.scientificamerican.com)

丝绸之路失落之城:中亚高山上的中世纪城市发现

在中亚高耸的山区,沿着古丝绸之路,考古学家发现了两座可能在一千年前繁荣兴盛的中世纪城市遗址:TashbulakTugunbulak,其发现与研究正在改变人们对丝绸之路网络的传统认知。

发现经过

  • 2011年,研究团队在乌兹别克斯坦东部山区徒步时,于一片高原上发现了异常土丘和大量陶器碎片,确认了第一座遗址 Tashbulak,其面积约30英亩,位于海拔约7000英尺(约2134米)处。
  • 2015年,通过当地一名护林员的线索,在其农场土丘下发现了第二座遗址 Tugunbulak,经勘测面积近300英亩,是Tashbulak的十倍。

技术手段与遗址特征

  • 研究团队使用无人机搭载LiDAR(激光雷达)技术进行测绘,生成高精度地形图,揭示了城墙、建筑、庭院、广场等复杂城市结构。
  • 遗址年代集中在公元8至11世纪(中世纪),后期被自然侵蚀掩埋。
  • 考古发掘出土了陶器、窑炉、铁矿冶炼痕迹及来自各地的钱币,表明这些城市并非单纯的矿业据点,而是具有冶炼、贸易和居住功能的大型聚落。

历史意义与重新思考

  • 传统丝绸之路地图强调低地城市(如撒马尔罕、塔什干),而高山地区常被视为偏远贫瘠。这两座城市的发现显示,高海拔聚落也能通过冶金、贸易产品融入丝路网络。
  • 研究者指出,这些城市的存在说明丝绸之路贸易网络极为灵活,远非传统路线所能涵盖,边缘社群同样是欧亚大陆互动网络的一部分。
  • 后续发掘工作仍在进行,旨在进一步探究城市人口结构、季节性变化及历史变迁。

学界评价

  • 研究者认为,这一发现迫使学术界重新评估丝绸之路的地理范围与复杂性
  • 尽管仍需更多考古工作确认细节,但仅就规模而言,这已是重大考古发现,为中亚中世纪历史研究提供了新视角。

说明:本摘要严格基于原文内容,未添加个人见解或外部信息,聚焦于考古发现的核心事实、方法与学术意义。

24. A DSL for peephole transformation rules of integer operations in the PyPy JIT (pypy.org)

用于PyPy JIT中整数操作窥孔转换规则的DSL

本文介绍了在PyPy JIT编译器中为整数操作优化引入的一个小型领域特定语言(DSL)。该DSL旨在通过声明式模式匹配来简化和优化整数操作序列,替代原先冗长易错的命令式实现。

动机与背景

作者长期从事JIT编译器中的整数优化工作,特别是在Pydrofoil等场景下整数操作至关重要。原有优化规则的编写方式为命令式RPython代码,存在繁琐、易错和难以维护的问题。例如,整数乘法的优化代码包含大量样板式操作和手动模式检查,扩展规则时极易混乱。

DSL设计与功能

基本规则结构

规则由名称、模式和目标组成:

  • 模式匹配操作序列,支持常量和变量
  • 支持交换律自动处理(如 int_add(x, 0) 也优化 int_add(0, x)
  • 变量可重复出现以匹配相同参数
  • 内置常量 MININT, MAXINT, LONG_BIT 支持平台无关表述

高级特性

  1. 常量计算:通过赋值语句在模式和目标间计算中间结果,支持算术运算和无符号移位
  2. 条件检查:规则可附加布尔检查,使用 IntBound 实例验证JIT的抽象解释信息(如值范围、已知位)
  3. 规则优先级:生成代码优先应用产生常量或变量的目标规则,其次才是产生新操作的规则
  4. 覆盖测试:单元测试确保每条规则至少触发一次
  5. 统计输出:可通过 PYPYLOG 机制打印规则触发频率

正确性保证

所有规则在编译前通过Z3自动证明正确性:

  • 失败时输出反例(输入值、中间结果、源/目标操作的不同结果值)
  • 同时检查规则可满足性(是否存在满足所有检查条件的运行时值)
  • 支持通过 SORRY_Z3 跳过证明(应谨慎使用)

现存局限

  • 无规则重写方向检查(可能导致无限循环)
  • 无汇合性检查(重写结果可能因应用顺序而异)
  • 部分 IntBound 方法因控制流复杂无法用于Z3证明

实现状态

  • DSL已合并至PyPy主分支,已完成部分整数重写迁移
  • 等效于先前命令式代码的DSL规则示例:
    mul_zero: int_mul(x, 0) => 0
    mul_one: int_mul(x, 1) => x
    mul_minus_one: int_mul(x, -1) => int_neg(x)
    mul_pow2_const: int_mul(x, C) check C > 0 and C & (C - 1) == 0 shift = highest_bit(C) => int_lshift(x, shift)
    mul_lshift: int_mul(x, int_lshift(1, y)) check y.known_ge_const(0) and y.known_le_const(LONG_BIT) => int_lshift(x, y)
    
  • 采用rply解析,借鉴模式匹配编译技术生成RPython代码

未来工作

  1. 扩展支持带溢出检查的整数操作(如 int_add_ovf
  2. 处理部分定义操作的优化(如除法的除零情况)
  3. 移植比较操作(如 int_lt, int_le)优化至DSL
  4. 探索简化形式的e-graphs优化结构

结论

该DSL显著提升了PyPy JIT中整数优化规则的可读性、可维护性和可靠性,通过Z3证明确保正确性,并通过统计和测试支持优化效果分析。虽然当前仅限于无溢出操作,但为JIT优化提供了更声明式和可扩展的框架。

25. Zero or Sign Extend (fgiesen.wordpress.com)

文章讨论了在处理位打包格式中的整数编码时,如何实现符号扩展,特别是针对不同位宽和有符号性的值。传统符号扩展方法通常依赖位移操作,例如将窄值左移到宽整数类型中,然后进行算术右移,但这种方法在C/C++中可能涉及未定义行为或实现特定问题。

作者提出了基于二进制补码定义的替代方法,避免使用位移。二进制补码的核心是最高位的位权为负值,因此可以通过掩码和算术操作直接进行符号扩展。例如,对于11位值,传统方法使用位移,而新方法通过隔离并减去最高位的贡献来实现:

int sign_extend(int val_11b) {
    return (val_11b & 0x3ff) - (val & 0x400);
}

或简化为:

int sign_extend(int val_11b) {
    return val - (val & 0x400) * 2;
}

这种方法不依赖整数类型宽度,避免未定义行为,并且可以扩展为统一处理有符号和无符号扩展。通过传递符号位参数,一个函数可以同时处理两种情况:

int zero_or_sign_extend(int val, int sign_bit) {
    return val - (val & sign_bit) * 2;
}

其中,sign_bit 为0时表示无符号,为1 << (bit_width - 1)时表示有符号。

文章更新部分引用了Harold Aptroot的更优公式,使用异或和减法操作:

int zero_or_sign_extend(int val, int sign_bit) {
    return (val ^ sign_bit) - sign_bit;
}

该公式通过案例分析理解:当sign_bit为0时,操作无效;否则,通过异或和减法调整最高位的位权,实现符号扩展。

这些方法直接基于二进补码定义,简化了符号扩展过程,并适用于多种位宽和有符号性场景。

26. Show HN: A macOS Client for HuggingFace Chat (github.com)

HuggingChat macOS 客户端概述

项目简介

HuggingChat macOS 是一个专为 macOS 设计的原生聊天界面,基于开源语言模型构建,将先进 AI 对话功能直接带至桌面,提供流畅直观的用户体验。

安装方式

传统安装

  1. 从仓库的 Releases 部分下载最新的 HuggingChat-macOS.zip 文件
  2. 解压下载的文件
  3. HuggingChat.app 拖入 Applications 文件夹

Homebrew 安装

通过 Homebrew 命令一键安装:

brew install --cask huggingchat

启动后可使用专用快捷键 ⌘ + Shift + Return

VSCode 集成

需安装 HuggingChat 扩展以实现编辑器集成。安装步骤:

  1. 下载扩展文件
  2. 在 VSCode 的 Extensions 标签中选择"Install from VSIX"
  3. 选择下载的文件并重启 VSCode 启用后可利用代码编辑器上下文提供更准确的响应。

开发环境

前提条件

  • Xcode 16.0 或更高版本
  • macOS 14.0 或更高版本

构建步骤

  1. 克隆仓库:
    git clone https://github.com/huggingface/chat-macOS.git
    cd HuggingChat-macOS
    
  2. 在 Xcode 中打开 HuggingChat-macOS.xcodeproj
  3. 计划在物理设备上运行时需在项目设置中选择开发团队
  4. 使用 ⌘ + R 构建并运行项目

贡献指南

  1. 问题选择:查看现有问题或创建新问题,评论表明工作意向
  2. 分支管理
    git checkout -b feature/your-feature-name
    # 或
    git checkout -b fix/your-bug-fix
    
  3. 代码规范
    • 遵循 Apple Swift API 设计指南
    • 使用项目中定义的 SwiftLint 规则
    • 保持一致的间距和格式
    • 编写有意义的提交信息
    • 为复杂逻辑添加注释

反馈渠道

通过 GitHub Issues 提交反馈:

  • 提供清晰标题和描述
  • 包含问题重现步骤或功能请求的详细说明
  • 注明应用版本号和 macOS 版本
27. For the strongest disc golf throws, it's all in the thumbs (arstechnica.com)

飞盘高尔夫投掷技巧研究:拇指位置至关重要

研究背景与目的

飞盘高尔夫(又名弗里斯比高尔夫)自20世纪60年代兴起,但相关科学研究较少。佐治亚州贝里学院的物理学家扎卡里·林赛及其团队开展了一项实验,旨在探索如何通过优化拇指位置来提高投掷速度和扭矩。研究结果发表于《AIP Advances》期刊。

实验设计

  • 参与者:24名球员,分为未评级或评级低于900的业余组,以及评级900以上的高水平组。
  • 器材:使用安装了飞行传感器的中距离盘。
  • 投掷方式:专注于反手投掷。
  • 变量:测试了从盘中心到边缘的五个不同拇指位置(距离中心9.40厘米至2.61厘米)。每位球员在每个位置进行5次投掷。
  • 测量指标:投掷后的旋转速度、发射速度和扭矩。

主要发现

  1. 最佳拇指位置:当拇指放置在距离盘外边缘约3厘米处时,所有参与者能同时获得最高的平均旋转速度和发射速度,综合效果最佳。
  2. 极端位置效果:虽然将拇指放在离中心最远的位置可获得最大的单次旋转速度和扭矩,但综合表现不如3厘米位置。
  3. 相关性:研究观察到旋转速度与发射速度之间存在很强的线性相关性——高旋转速度的投掷通常也伴随着高发射速度。

研究意义与局限

  • 研究者指出,虽然最优参数可能因个人体格、手臂速度等因素而异,但~3厘米的位置为不确定如何握盘的业余玩家提供了一个合理的起点
  • 本研究为初步发现,仅测试了一种盘型(中距离盘)。团队计划对其他盘型(如开瓶器、推杆器)进行进一步实验。
  • 研究希望激励更多相关运动生物力学研究。

飞盘高尔夫基础简介

(根据文章背景信息整理)

  • 盘型:主要分为开瓶器(长距离、低阻力)、中距离盘(兼顾距离与精度,200-300英尺)和推杆器(近距离、高阻力)。
  • 比赛方式:在有9或18个目标篮的场地上,玩家从发球区轮流投掷,直至将盘投入篮中,类似高尔夫。
  • 握法:反手和正手是两种主要投掷风格。握法包括“扇形握”(手指展开在盘内缘)和“叠层握”(手指叠放在内缘),拇指位置对所有握法都至关重要,因其能平衡下方手指并影响扭矩。
28. Paper mills: the 'cartel-like' companies behind fraudulent scientific journals (theconversation.com)

论文工厂:欺诈性科学期刊背后的“卡特尔式”公司

问题概述 《科学》与《自然》等顶级科学期刊揭示了一个日益严重的问题:由可疑的论文工厂公司生产的欺诈性研究论文数量急剧上升。这些虚假研究正严重威胁全球学术研究的诚信。

何为论文工厂及其运作模式 论文工厂为研究人员、学者和学生提供“代写”服务,客户支付约180至5000欧元,即可在知名期刊上发表文章并署名,无需亲自进行研究。这些公司常被视作非法犯罪组织。

规模与影响 欺诈性论文数量激增。撤稿数量从2019年的10篇飙升至2023年的2099篇。主要出版商深受其害,如Wiley/Hindawi在2023年撤回了约1200篇论文工厂文章,SAGE和Elsevier也在2022年撤回了数百篇。论文工厂在那些以发表数量为考核激励的研究政策国家(如中国、俄罗斯、印度、伊朗)尤为活跃,但其客户遍布全球。

论文工厂的运作手法

  1. 生产问题文章:文章通常涉及抄袭、虚假或窃取数据、篡改及重复使用图片,并利用AI工具改写或翻译现有文章。
  2. 承诺发表:在文章被接受前或待发表时出售署名权,并保证发表,这违背了正常的同行评审流程。
  3. 虚假评审与贿赂:提供虚假同行评审服务。部分论文工厂行为类似卡特尔,贿赂不道德的期刊编辑以确保文章发表。一项调查显示,有编辑被提供高达2万美元的贿赂,超过30名知名期刊编辑被牵连。
  4. 异常的作者组合:论文作者背景毫不相关(例如,一篇关于哈萨克斯坦作物害虫的论文,作者却来自麻醉、牙科等领域,且无人来自哈萨克斯坦)。
  5. 匿名合著:客户需遵守保密条款,通常不知道文章将投向何处,也互不认识同一篇论文的其他作者。

检测方法 识别此类文章通常从分析撤稿模式开始,可通过PubPeer等平台的后期同行评审或撤稿观察数据库进行追踪。然而,期刊很少直接以“论文工厂”为由撤稿,通常归因为作者署名不当、无关引用、抄袭或图像篡改等。Retraction Watch截至2024年5月仅记录了7275篇与论文工厂相关的撤稿,但估计过去二十年有高达40万篇此类文章已渗入科学文献。尽管出版界和学术组织(如United2Act联盟)努力应对,但效果有限。

对公众的危害 英国研究诚信办公室估计,论文工厂行业全球获利约1000万美元。例如,一家俄罗斯论文工厂通过出售2019至2021年间生产的文章署名权可获利650万美元。在印度尼西亚等地,此类欺诈直接造成公众损失,因为公立大学依赖国家预算和学费来支付研究经费和发表激励,相当于公众为欺诈性研究实践买单,挤占了真正学术发展的资源。

29. Toasty, an async ORM for Rust (tokio.rs)

Toasty:Rust异步ORM概述

Toasty 是一款为Rust设计的异步ORM(对象关系映射),核心目标是易用性。它支持SQL(如SQLite)和NoSQL(如DynamoDB,未来计划支持Cassandra)数据库。目前项目处于早期开发阶段,属于“预览版”,尚未发布到crates.io,已开源GitHub以收集反馈。

核心工作流程

  1. 定义数据模型:在.toasty模式文件中用声明式语法定义model结构体(如UserTodo),指定键、索引、关系等。
  2. 生成代码:通过Toasty CLI工具,根据模式文件生成对应的Rust代码(包括结构体、查询方法等)。生成的代码旨在保持可读性,便于开发者发现可用API。
  3. 使用ORM:通过生成的代码进行数据操作,例如创建关联记录、根据条件查询、遍历关联数据等,语法直观。

设计理念与技术选择

  • 填补生态空白:Rust在基础设施级应用生态成熟,但在高阶Web应用(传统Web应用)领域的ORM库存在不足。Toasty旨在提升该场景的开发效率,优先考虑易用性而非极致性能。
  • 简化API设计:谨慎使用Rust的trait和生命周期,以避免API过于复杂。示例代码显示生成的查询方法包含必要的生命周期(未来可能基于反馈移除)。
  • 代码生成策略未使用过程宏,而是采用显式代码生成步骤。生成的代码输出为单独文件,开发者可直接查看,增强了API的可发现性和透明度。
  • 跨数据库支持:同时支持SQL和NoSQL,但不抽象掉数据库差异。开发者需为目标数据库设计合适的schema。Toasty提供通用数据映射和基本CRUD操作,并针对不同数据库生成适合的查询方法,避免低效查询。

现状与规划

  • 当前仅支持SQLite和DynamoDB,其他数据库支持(如更多SQL数据库、Cassandra)有望通过社区贡献实现。
  • 项目尚不适合生产使用,API将根据反馈演进。目标是明年(更可能在明年年底)达到生产可用状态。
  • 鼓励社区参与:在Tokio Discord的#toasty频道讨论,或在GitHub提交issue贡献想法。

总结:Toasty是Rust生态中致力于简化Web应用数据层开发的异步ORM,通过直观的模式定义、代码生成和平衡的易用性设计,意图降低Rust在高阶应用开发中的门槛。

30. GitButler now supports first class conflicts, making rebasing less annoying (blog.gitbutler.com)

GitButler 最新更新引入了对“一等冲突”的支持,使 rebase 操作更加便捷和无畏。作者从长期偏好 merge 转向支持 rebase,主要归因于 GitButler 的新功能设计。

传统上,merge 能保留更多历史、冲突更少且易于追踪,但 rebase 能带来线性历史,便于代码审查和问题定位。然而,rebase 在实际操作中常因冲突解决繁琐而令人沮丧:它要求立即处理所有冲突,中断工作流程,且难以中途保存进度或保持提交序列整洁。

GitButler 受到 Jujutsu 项目的启发,实现了类似“一等冲突”的机制。与传统 Git 遇到冲突即停止不同,GitButler 在 rebase 时若遇冲突,会将冲突状态记录在提交中,继续应用后续无冲突的提交,并仅将无冲突部分写入工作目录。这意味着 rebase 操作总是可以成功完成,不会因冲突而中断。

具体工作流程如下:当用户对分支提交序列进行 rebase 时,GitButler 会标记有冲突的提交,允许用户按任意顺序解决。用户可随时点击冲突提交并进入冲突解决状态,此时工作目录仅展示该提交的冲突内容,解决后即可保存并自动继续 rebase 剩余提交。用户甚至可在存在未解决冲突的情况下继续添加新提交。

这一设计将 rebase 变为一个可中断、可延迟、非阻塞的过程,显著降低了操作压力,使用户能够更灵活地管理代码历史。GitButler 旨在通过这种方式提供更流畅的版本控制体验,鼓励用户采用 rebase 来维护清晰的历史记录。该功能已在 GitButler 0.13 版本中发布。