## Charles Proxy: 发布历史概要 Charles Proxy 自早期版本以来经历了广泛的开发,持续添加功能并修复错误。最初的版本(2005-2008)专注于核心代理功能,增加了对 Firefox、SOCKS 代理的支持,并改进了对 XML、SWF 和 AMF/Flash Remoting 等连接和数据格式的处理。 3.0 版本(2007)和 4.0 版本(2016)进行了重大更新,引入了显著的用户界面改进、HTTP/2 和 IPv6 支持,以及捆绑的 Java 运行时环境。最近的开发(2017-2023)优先考虑 TLS 调试、macOS 兼容性(包括深色模式)、SSL 证书处理以及持续的错误修复。 开发者积极应对安全漏洞,特别是 2021 年的 log4j2 问题。目前,Charles 5 正在公开测试版,继续改进用户界面和稳定性。在整个发展历程中,Charles 一直在不断发展,以满足 Web 开发人员和安全专业人员的需求。
## ClickHouse 聚合性能改进 - 总结
这项工作(PR #87366)解决了在看似相同的 ClickHouse 查询中观察到的显著性能差异,特别是那些使用 `uniq()` 聚合的查询。 根本原因在于 ClickHouse 处理分组值的方式——将它们视为 `UInt16` 与更大的类型——从而影响了使用的聚合数据结构。
ClickHouse 使用基于数组或标准哈希映射来进行聚合。 当按较小的数字分组时,使用数组,从而可以有效地并行合并聚合状态。 较大的值会触发标准哈希映射,从而阻碍并行化。 最初的查询使用了 `UInt16`,导致较慢的两级哈希映射合并。 添加 `0 +` 强制使用 `UInt64`,从而实现更快的单级合并。
该实现侧重于通过在线程之间分配工作而无需竞争条件,从而为单级哈希映射启用并行合并。 开发涉及克服内存损坏问题(与线程不安全的 `DB::Arena` 内存管理相关)以及优化琐碎的聚合函数(如 `count()`),在这些函数中,并行化的开销超过了收益。 火焰图和仔细的日志记录对于识别性能瓶颈和调试至关重要。 最终解决方案包括优化,以在并行合并期间保持哈希映射索引以提高性能。
## 用音乐可视化重塑人工智能:一种新方法
Positron 正在通过专注于音乐可视化来应对现代人工智能开发中的挑战——大规模、反馈循环慢和成本高昂。他们认为这是一个理想的“原始”问题,对缺陷具有容忍性,并能使用更小的 AI 模型进行快速迭代。他们的开源项目 µTate 旨在通过为开发者提供贡献平台并获得经济奖励来启动一种名为 PrizeForge 的筹款解决方案。
核心思想是*远离*当前越来越大的人工智能模型趋势,转向“小型人工智能”——利用诸如权重重用和贪婪粒子方法等技术来降低计算需求。音乐可视化独特地受益于“幻觉”——意想不到的、迷幻的结果——将模型缺陷转化为理想特征。
µTate 使用 Rust 构建,利用 Vulkan 等现代图形 API,并专注于高效的实时性能。该项目强调开放开发,欢迎贡献,并旨在创建一个充满活力的社区,尤其是在本地 LLM 爱好者群体中。最终,Positron 设想了一个良性循环,即快速开发、用户反馈和经济激励,证明即使使用更小、更易于访问的 AI,也可以取得重大进展。