肖恩技术周刊(第 56 期):坎宁安定律
周刊内容: 对一周内阅读的资讯或技术内容精品(个人向)进行总结,分类大致包含“业界资讯”、“技术博客”、“开源项目”和“学习资源”等。
更新时间: 周一
历史收录: 技术周刊合集
订阅方式: 微信公众号“肖恩聊技术”,除周刊外还有更多原创技术博文,欢迎关注👏🏻~
坎宁安定律指:在互联网上得到优秀答案的最佳方法不是去提问,而是发布一个错误或者负面的答案。这个概念由 Wikipedia 之父沃德·坎宁安提出。
例如你在网上提问某个城市有哪些好玩的地方,也许不会有太多人响应你。但如果你写:“XXX城市真垃圾,根本没有值得玩和吃的地方“,反而能激发网友们的回复欲望,回答也会蜂拥而至。
这个定律还有“灾难版”衍生:想让所有人都意识到某个问题的严重性,最快的方法不是预警,而是让它真的发生一次。这在程序员的日常工作中有太多鲜活的案例。例如没人在意“密码明文存储”的风险,直到某网站 2000 万用户数据泄露,一夜之间全行业强制加密。
业界资讯
OpenAI 学习模式简介
OpenAI推出ChatGPT学习模式,旨在通过逐步指导帮助用户深入学习而非仅提供答案。该模式由专家合作开发,具备交互式提示、支架式回复、个性化支持等功能,覆盖从基础概念到实际应用的学习过程,适用于大学生,未来将优化并探索更多功能。
Manus 宣布上线 Wide Research 功能
Manus AI 推出了 Wide Research 功能,旨在帮助用户处理复杂且需要大量信息的任务。该功能基于强大的并行处理机制和智能体协作协议,利用大规模虚拟化基础设施和高效代理架构,使用户能够通过聊天控制超级计算机集群,轻松解锁复杂任务的解决方案。Wide Research 允许用户将任务分解为多个子任务,分配给多个子智能体并行处理,这些子智能体均为功能完备的Manus实例,任务不受限于固定格式或预定义领域。
佳文共赏
苹果电脑1984到2004间控制面板的演变
文章回顾了苹果电脑从1984年到2004年控制面板的演变历程。作者从个人视角出发,详细描述了每个阶段控制面板的设计特点、功能变化以及用户体验。1984年的Macintosh控制面板由Susan Kare设计,具有动画和漫画风格,提供自定义桌面图案等功能。1986年和1987年的版本逐渐引入更多设置选项,如RAM缓存和国际化功能。1991年引入彩色图标,但界面变得复杂。1994年和1997年版本增加了第三方应用和系统稳定性功能。1998年iMac G3的控制面板尝试了多种主题,但显得不成熟。2001年PowerBook G4 Titanium引入了Aqua界面,设计更加简洁直观。2003年iMac G4的控制面板更加成熟,引入了Exposé等新功能。到2025年,现代macOS的设置更加一致,但缺乏早期的个性和关怀,无障碍功能成为亮点。整体来看,苹果控制面板的演变反映了其在软件设计上的探索与成长,以及对用户体验的不断优化。
跑外卖三十三天,我窥见一座三线城市的肌理与褶皱
作者为体验外卖员生活,在家乡开启一个月的外卖工作。他跟随师傅学习后,开始接触形形色色的店家和顾客。他发现“幽灵厨房”环境恶劣,多家店铺挤在一起,卫生状况堪忧;烤鸭店师傅在烟雾中工作,外卖包装却写着“吃得安心”,让他对食品安全产生担忧。他还遇到独居且身体不便的老人,感受到他们的无奈与辛酸;同行苏师傅肩负房贷车贷,生活压力巨大但仍努力工作。通过跑外卖,作者走遍城市各个角落,从整洁的商业区到老旧自建房,从公务员家属到普通青年,他看到了三线城市的参差和人们生活的不易,也对城市的肌理有了更深刻的认识。
我黑进了我的洗衣机
文章讲述了作者和朋友们如何破解一台智能洗衣机的加密,以实现通过Discord接收洗衣完成通知。他们搬进出租屋后,发现洗衣机的手机应用功能不实用,于是决定动手改进。作者通过设置一个OpenWRT路由器,捕获洗衣机的网络流量,发现其与“simplyfimgmt.candy-hoover.com”服务器通信。经过尝试,他们使用现成工具破解了洗衣机的加密,能够读取其状态信息。作者编写脚本,每3秒请求一次洗衣机状态,并将更新发送到Discord。他们还计划将类似功能扩展到其他家电,如烘干机和洗碗机,考虑使用智能插头或振动传感器来监控其运行状态。整个过程充满了技术探索的乐趣,也展示了作者对智能设备的深度改造能力。
技术博客
线性类型
本文探讨了线性类型,一种源于线性逻辑的类型系统,具有四个主要操作符(⊗、⊕、&、⅋),用于建模资源使用会改变类型的系统,如网络协议、内存管理等。线性类型可确保资源的正确使用和管理,避免资源泄漏或错误使用。在并发编程中,线性类型通过指定值的使用顺序,定义并发组件之间的协议,同时避免死锁。尽管目前没有主流编程语言完全实现线性类型,但许多语言有其变体。例如,Haskell实验性地引入了线性类型,C++的unique_ptr
和Rust的仿射类型及唯一性类型都是线性类型的变体。Rust的仿射类型系统通过限制值的使用次数来防止数据竞争,而唯一性类型则确保任何时候只有一个引用指向某个值。会话类型作为线性类型的变体,明确指定了通信协议中消息的发送顺序,已在多种语言中得到应用。线性类型及其变体为程序员提供了强大的工具,用于构建高效、安全且易于管理的系统。
图像分辨率如何影响视觉文档检索
本文研究了图像分辨率对视觉文档检索模型 jina-embeddings-v4
的影响。该模型结合图像和文本处理,用于解析视觉丰富的文档。实验发现,图像分辨率对检索效果至关重要:分辨率太低会丢失关键细节,太高则难以将各部分联系起来。研究团队在多个基准测试套件上评估了不同分辨率的性能,结果显示没有一种分辨率适用于所有数据。多分辨率向量模型的尝试表明,使用多种分辨率组合可以提升检索效果,但也增加了处理和存储成本。团队正在探索如何将这些发现应用于改进神经搜索,例如自动确定最佳分辨率等方向。研究表明,图像分辨率对视觉文档检索非常重要,但需要根据具体数据和需求进行优化。
变量名对AI代码补全重要吗?
文章探讨了变量命名对AI代码补全的影响。作者通过实验测试了8种不同AI模型在500个Python代码样本、7种命名风格下的表现。结果表明,描述性变量名能帮助AI更好地完成代码补全,其在所有模型中都表现最佳,具体表现为更高的精确匹配率、更高的Levenshtein相似度以及更高的语义相似度。此外,尽管描述性命名使用了更多的标记,但其语义性能更好,这表明AI模型更倾向于清晰性而非压缩性。对于开发者来说,使用描述性变量名可以提高AI代码补全工具的性能,这与提高人类可读性的现有指导原则一致。
开源项目
仓颉编程语言
仓颉编程语言是一款面向全场景智能的新一代编程语言,具备原生智能化、全场景适配、高性能和强安全等特性,适用于多种场景下的应用程序开发。
OxyGent:多智能体协作框架
OxyGent 是一个开源框架,它将工具、模型和智能体整合为模块化的 Oxy。通过提供透明的端到端流程,OxyGent 赋予开发者能力,使其构建、运行和演进多智能体系统变得无缝且具有无限扩展性。
jdgenie:通用智能体
JoyAgent-JDGenie是京东开源的业界首个端到端的多智能体产品,旨在解决快速构建多智能体产品的最后一公里问题。它具有开箱即用、支持二次开发的特点,包含前端、后端、框架、引擎和多种子智能体。在GAIA榜单上,其准确率超越了多个行业知名产品。它支持多种智能体设计模式和多智能体上下文管理,且子Agent和工具可插拔,可输出多种文件交付样式。
学习资源
CS自学社区
提供了CS完整的学习路线、课程资源和学习方式指导。
事件风暴
事件风暴是DDD战略设计阶段的核心实践方法,通过集体头脑风暴的方式,以“领域事件”为线索,快速识别业务流程中的关键节点。此网站提供了概念介绍、风格选择、服务支持和学习资源。
动手学现代C++核心语言特性
免费在线C++学习资源,强调通过代码练习掌握现代C++核心特性。包含交互式代码练习、自动检测工具、本地文档和电子书,通过社区共享和共建实现良性循环。