2025-05-14

42 篇热帖

1. AlphaEvolve: A Gemini-powered coding agent for designing advanced algorithms (deepmind.google)

New AI agent evolves algorithms for math and practical applications in computing by combining the creativity of large language models with automated evaluators

2. What is HDR, anyway? (www.lux.camera)

HDR:高动态范围的三重解析

核心概念:动态范围与HDR的双重含义

  • 动态范围指场景中最亮与最暗部分的亮度差异。人眼能轻松处理高动态范围场景(如夕阳下的建筑),但传统相机和多数显示器难以同时保留高光与阴影细节,导致照片不是过曝就是欠曝。
  • HDR一词存在两种常见含义,易引发混淆:
    1. 相机HDR模式:自2010年起出现在智能手机相机中,是一种通过算法处理来改善照片动态范围的功能
    2. HDR显示器:指新一代显示技术,能呈现更高对比度、更鲜艳色彩和更亮高光的屏幕

解决方案一:相机“HDR模式”(实为智能色调映射)

  • 原理:通过快速连拍多张不同曝光的照片,合成一张兼顾高光和阴影细节的图片。
  • 发展历程:从早期需手动调节的专业软件(常导致不自然的效果),发展到苹果、谷歌手机相机中全自动的“智能HDR”与“深度融合”等AI算法。
  • 问题与用户反馈:全自动算法可能导致边缘伪影、细节涂抹或产生不自然的“过度处理”感。部分用户因此偏爱更原始、无算法处理的拍摄模式(如Halide的“Process Zero”),但会牺牲高动态范围场景的细节。
  • 创新实践:从胶片时代的“加光/减光”手法中获得灵感,开发了单张拍摄的可选式色调映射。用户可在后期自由调整动态范围强度,平衡细节与艺术表达。

解决方案二:真正的HDR显示技术

  • 现状:现代iPhone等设备的屏幕支持真正的HDR显示,能展现更明亮的高光和更丰富的暗部细节,视觉体验接近肉眼所见。
  • 挑战
    • 兼容性与普及:HDR内容需要端到端的支持(拍摄、存储、显示)。尽管iOS 18引入了“自适应HDR”(在单个文件中同时包含SDR和HDR数据以实现向后兼容),但网页端、应用和分享平台的支持仍不完善。
    • 内容滥用:部分创作者滥用高亮度HDR以吸引眼球,导致观看不适,反而促使部分用户关闭HDR功能。
  • 应用实践:Halide计划为其“Process Zero”模式增加HDR输出选项,提供“标准”、“最大”和“关闭”三档选择,并正在与苹果合作解决其系统应用中的显示兼容性问题。

解决方案三:拥抱标准动态范围

  • 审美选择:并非所有场景都需追求极致动态范围。有时,较低的动态范围能更好地突出主体、营造氛围或带来特定的美学感受(如模拟胶片质感)。
  • 艺术意图:正如历史上摄影师在暗房中精心控制影调一样,动态范围的处理应服务于摄影师的创作意图,而非被算法完全主导。

总结与前瞻

  • HDR的核心问题在于场景动态范围与拍摄/显示设备能力之间的差距。
  • 三种解决方案各有适用场景:智能算法处理(便捷但可能失控)、真正的HDR显示(潜力巨大但兼容性复杂)、保留标准动态范围(服务于特定美学)。
  • 未来的方向是给予用户充分的选择权与控制力,让技术(无论是算法还是显示硬件)服务于摄影者的艺术表达,而非取代其判断。
3. Coding without a laptop: Two weeks with AR glasses and Linux on Android (holdtherobot.com)

Food Logger 应用简介

Food Logger 是一款快速且易于使用的营养跟踪应用,旨在为智能、有吸引力的用户提供简单工具。

主要特点

  • 离线数据库:无需网络连接即可访问食物数据,方便随时随地记录。
  • 最小触摸记录:通过简化的操作流程,用户只需少量触摸即可完成食物日志的添加,提升效率。
  • 强大功能:支持营养标签扫描,能自动识别和记录营养成分信息,增强数据准确性。

该应用专注于提供直观的营养管理体验,适合日常使用,帮助用户轻松跟踪饮食摄入。

5. Branch Privilege Injection: Exploiting branch predictor race conditions (comsec.ethz.ch)

Branch Privilege Injection 漏洞摘要

核心漏洞: Branch Privilege Injection (CVE-2024-45332) 是一个针对Intel处理器的新型推测执行攻击,利用了分支预测器中的竞态条件,能够再次有效实施分支目标注入攻击,打破了已沿用近六年的Intel硬件缓解措施。

关键发现:

  1. 异步更新特性:Intel处理器的分支预测器会异步于指令流进行更新。研究发现,在特定条件下,更新可能延迟数十甚至数百个周期。
  2. 同步不足导致竞态:在安全关键操作(如权限切换:用户态/内核态、虚拟机/ hypervisor,或执行IBPB)期间,分支预测器与指令流之间存在同步不足。仍在处理中的预测器更新在权限切换完成后才生效,导致其被关联到错误的权限域。此类缺陷被定义为分支预测器竞态条件

攻击影响:

  • 研究团队基于此漏洞构建了一个端到端的攻击,在默认缓解措施全部开启的Ubuntu 24.04系统上,能够以5.6KiB/s的速度泄露任意内存。
  • 该攻击影响第9代(Coffee Lake Refresh)及之后的所有Intel处理器。在更早的第7代(Kaby Lake)处理器上也观察到了预测条目绕过IBPB的现象。
  • 该漏洞不影响AMD和ARM处理器。
  • 漏洞源于硬件缺陷,因此任何运行在受影响硬件上的操作系统(不限于Linux)均受影响。

受影响的缓解措施:

  • eIBRS:旨在通过将预测关联到其原始安全域来隔离不同安全域间的间接分支预测。然而,权限切换时的竞态条件可被利用来操纵这种关联,破坏其安全性。
  • IBPB:用于在特定场景(如同一硬件安全域内的沙箱或互不信任的虚拟机间)作废所有间接分支预测。攻击发现,在执行IBPB时仍在处理中的预测更新不会被清除,从而可能残留在预测器中。

缓解措施:

  • Intel已发布受影响处理器的微码更新。在Alder Lake上的评估显示,该微码修复能阻断攻击所用原语,性能开销最高约为2.7%。
  • 研究也评估了多种软件缓解策略,性能开销在1.6%(Coffee Lake Refresh)到8.3%(Rocket Lake)之间。

建议与资源:

  • 应对措施:安装最新的操作系统和BIOS更新。
  • 相关资源:论文将在USENIX Security 2025发表,相关代码和实验已发布在GitHub。Black Hat USA 2025上将有相关技术演讲。
6. Flattening Rust’s learning curve (corrode.dev)

I see people make the same mistakes over and over again when learning Rust. Here are my thoughts (ordered by importance) on how you can ease the learning process. My goal is to help you save time and frustration. <…

7. Bus stops here: Shanghai lets riders design their own routes (www.sixthtone.com)

上海推出“DZ”定制公交系统,让乘客通过城市平台自主设计公交线路,满足多样化出行需求。该系统以“定制”为核心,居民可提交始发点、终点、时间及频次等路线建议,当需求达到门槛(通常15-20人/趟)后即可开通,最快3天内运营。目前全市16个区已开设超220条定制线路。

系统运作依托线上平台,自5月8日上线以来,用户可发布路线需求并集体“投票”推动开通。团体预约可加速审批流程。票价虽遵循公共交通基本标准,但未提供学生、老人等优惠。

典型案例DZ301线路连接地铁站与周边住宅、学校及办公楼,日均客流250-260人。该线路源于居民申请,经现场调研、试运行后正式开通,有效匹配高峰时段运力需求。同济大学教授陈小鸿指出,此举基于上海密集交通网络优化资源配置,提升出行效率与便捷性。

上海市客运处副处长王亦详表示,新平台简化了以往繁琐的线路开设流程,但仍面临需求不均、公众知晓度低、规划依赖人工实地勘察等挑战。未来将重点改进线路规划、平台功能并加强宣传,以持续完善定制公交服务。

8. Databricks and Neon (www.databricks.com)

Databricks agrees to acquire Neon, a serverless Postgres database company, to bring speed and flexibility to production workloads.

9. A server that wasn't meant to exist (it-notes.dragas.net)

A story from 16 years ago - trust, tech, and a server that had to disappear. They offered me a blank check. I said no.

10. Why are banks still getting authentication so wrong? (jamal.haba.sh)

摘要:银行身份验证为何持续出错?

本文通过作者自身经历揭示了加拿大金融机构(以TD银行为例)在身份验证方面存在的严重缺陷,并论证了过度依赖基于短信的双重认证(SMS-based 2FA)的弊端及现代解决方案。

  • 核心问题与个人经历:作者在美国旅行时,因使用加拿大SIM卡进行短信验证而被锁定在TD银行账户之外。尽管安装了TD专有的认证应用“TD Authenticate”,但该应用的登录流程同样依赖短信,形成了设计上的“死循环”。这体现了安全措施反而惩罚用户,而非保护用户的系统设计失败。
  • SMS 2FA的根本缺陷:文章指出,短信验证码早已被权威机构(如美国NIST和CISA)认定为不安全的认证方式,仅建议作为“低风险”登录的“最后手段”。其漏洞使用户面临SIM卡交换攻击、短信拦截和网络钓鱼等风险。作者强调,银行账户显然不属于“低风险”场景,却仍广泛依赖此方式。
  • 专有OTP应用的局限性:部分银行(如TD)尝试推出自有认证应用以替代短信,但这仅是边际改进。这些应用通常不遵循开放标准(如TOTP),导致不与密码管理器或平台身份验证器集成,有时甚至需要登录才能生成验证码,反而损害了可用性,并成为银行不采纳更先进标准的借口。
  • 理想的现代认证方案:文章列举了2025年应具备的健全身份验证机制,包括:
    • 通行密钥(Passkeys):基于FIDO2/WebAuthn,具有防钓鱼特性,利用生物识别,用户体验佳。
    • 支持TOTP标准:允许用户使用任何标准认证器应用。
    • 支持硬件安全密钥(如YubiKey)。
    • 安全的账户恢复路径:基于可信设备或恢复代码,而非短信。
    • 与密码管理器兼容
  • 结论与呼吁:作者批评TD银行等机构的认证流程设计脱离用户实际场景(如国际旅行),成为损害用户体验和安全信任的“敌对”系统。银行支持基本的开放标准(如通行密钥、TOTP)已刻不容缓,安全与易用性并非不可兼得。文末提及,该问题已持续三年未变,并暗示未来将讨论自主主权身份等更前沿的去中心化认证基础设施。
11. Type-constrained code generation with language models (arxiv.org)

该论文提出了一种类型约束解码方法,利用类型系统来引导大型语言模型(LLM)的代码生成,旨在解决LLM生成代码时频繁出现编译错误(特别是类型错误)而现有约束解码技术难以有效处理的问题。

核心问题与挑战:LLM的逐token生成过程未建模代码的形式化属性,导致其输出常不可编译。现有的约束解码主要针对特定语言或通用编程语言的语法特征,但类型错误超出了纯语法范围,约束难度大。

方法核心

  1. 类型约束解码:提出一种新方法,在生成过程中利用类型信息进行引导。
  2. 关键创新
    • 前缀自动机:用于在生成过程中跟踪和强制约束类型一致性。
    • 搜索可居住类型:通过搜索存在有效实例的类型,确保生成的代码片段在类型上是健全的(well-typed)。
  3. 形式化与扩展:该方法首先在一个基础的简单类型语言上进行了形式化定义,随后扩展至实际编程语言 TypeScript,以证明其可行性。

实验结果

  • HumanEvalMBPP 两个主流代码生成基准数据集上进行了评估。
  • 显著效果:将编译错误减少了一半以上,并在代码合成、翻译和修复任务中显著提高了功能正确性
  • 广泛适用性:该方法在多种规模和模型家族的LLM上均有效,包括参数超过300亿的最新开源权重模型。

意义与结论: 该研究证明了将类型系统的正式规则用于约束LLM代码生成的通用性和有效性,为提高LLM生成代码的可靠性和质量提供了一种新的形式化方法。研究领域涉及机器学习(cs.LG)和编程语言(cs.PL)。

12. Writing that changed how I think about programming languages (bernsteinbear.com)

这篇文章分享了一系列深刻改变了作者对编程语言和编译器思考方式的技术文章、论文和演讲。这些内容涵盖了从垃圾回收、优化器设计、正确性验证到解释器、解析器等多个核心领域。

  • 垃圾回收:Andy Wingo 的博文将切尼复制垃圾回收器的理论简化为了一个易于理解、可扩展的实践实现。
  • 优化器设计:CF Bolz-Tereick 的“玩具优化器”系列改变了作者对指令重写的看法,引入了使用转发指针和并查集的方法。其后续关于“已知位”抽象域的文章,不仅介绍了新的优化器抽象域,还重新定义了作者对形式化验证工具Z3的理解,将其作为证明引擎来验证代码正确性。
  • 正确性证明:Chris Fallin 关于寄存器分配正确性的文章,提出了一种在生产环境中验证分配器正确性的方法——要么正确分配,要么有意义地崩溃,并结合模糊测试来探索状态空间。
  • 正则表达式与并发:Russ Cox 的文章用不到50行可读代码实现了一个正则引擎,将正则匹配与虚拟机方法联系起来,同时也让协程/纤程的概念更易理解。
  • 机器学习与神经网络:Andrej Karpathy 的 micrograd 项目,通过一个无任何库的微型神经网络实现,帮助作者理解了机器学习的基本原理。
  • SSA形式与数据结构:Fil Pizlo 的文章改变了作者对并查集的看法,提出了一种通过在对象标签中存储指针的破坏性重写方法以节省空间,并介绍了Phi/Upsilon形式和基于类型的别名分析风格的堆效应。他的另一篇文章详细描述了JavaScriptCore引擎中各种优化器的工作方式。
  • 编译器架构与性能:Chandler Carruth 在Carbon编译器设计的演讲中,设定了极其严格的编译时间预算,并分层阐述了编译器(从词法分析器开始)如何适应此预算。
  • 解释器实现:Allison Kaptur 用Python实现的Python解释器,让作者理解了字节码解释器(特别是CPython内部)的工作机制。
  • 解析技术:Eli Bendersky 介绍的优先级攀升法,为手写递归下降解析器提供了一种更易理解和开发的替代方案。
  • JIT编译与寄存器分配:Takashi Kokubun 的 Ruby JIT挑战是一个很好的代码生成入门,其展示的在编译时折叠栈操作到物理寄存器虚拟栈的寄存器分配方法颇具新意。
  • 编译器构造方法论:Abdulaziz Ghuloum 的增量式编译器构造方法,将编译和代码生成从神秘的多遍处理过程转变为可理解的单遍形式,按功能逐个端到端实现。Fernando Borretti 的文章则总结了这种“条纹式”实现策略。
  • 优化器新范式:关于“egg”和等式饱和技术的论文改变了作者对优化器和优化遍排序的看法,提出了生成所有可能表达式版本的压缩超图并选取“最佳”版本的思路。Chris Fallin 展示了e-graph在生产编译器(如Cranelift)中的可行性和有效性,即使不实现全部功能。Phil Zucker 的文章则进一步探讨了无环e-graph的具体应用。
  • IR设计与存储:Bob Nystrom 的评论和Adrian Sampson的文章共同指出,AST的存储可以像字节码一样紧凑,这引发了关于以这种形式存储IR时进行大规模并行无锁抽象解释的讨论,并改变了作者对IR节点分配和引用的思考方式。

作者通过阅读这些资源,将许多编程语言与编译器领域的核心概念从理论引向了实践,并多次更新了自己的认知框架。

13. I failed a take-home assignment from Kagi Search (bloggeroo.dev)

Kagi Search 带回家面试挑战经历总结

背景

  • 作者申请了Kagi Search的后端开发职位,职位要求包括Go语言经验、后端系统构建、容器化技术等。
  • 作者收到带回家面试挑战,要求开发一个终端风格或Web版的最小化邮件客户端,支持基本邮件收发功能。

面试过程

  1. 任务说明:挑战要求宽泛,鼓励候选人展示技能,交付物需部署到可测试环境。
  2. 沟通尝试:作者与招聘经理沟通,询问公司对附加功能的偏好,得到的回复是“自行决定”。作者随后提交了详细实施方案,包括:
    • 使用Go语言、PocketBase、Pulumi等工具构建Web应用。
    • 部署到AWS,集成Postmark邮件服务。
    • 添加登录功能和UI设计。
    • 询问完成项目后可能的反馈,但未获明确回答。
  3. 项目完成:作者投入一周全职工作,完成了方案中的所有功能,并提供了部署链接和代码仓库。
  4. 结果:收到自动化拒绝邮件,反馈称“其他提交更简单且更强”,建议关注未来职位。作者指出职位招聘广告仍开放,且面试指南在作者提交后变更了部署要求。

作者观点

  • 批评带回家面试挑战浪费候选人时间,尤其对失业求职者造成压力。
  • 建议改进面试流程,如采用异步代码审查,而非依赖编码谜题或无偿长时间项目。

总结
作者认为Kagi Search的面试流程缺乏透明度和尊重,并呼吁求职者拒绝此类无偿工作要求,以促使公司改进招聘方式。

14. Airbnb is in midlife crisis mode (www.wired.com)

CEO Brian Chesky is spending hundreds of millions to relaunch his travel company as an everything app. Fitness! Food! Microdermabrasion? A WIRED exclusive.

15. The cryptography behind passkeys (blog.trailofbits.com)
            This post will examine the cryptography behind passkeys, the guarantees they do or do not give, and interesting cryptographic things you can do with them, such as generating cryptographic keys and storing certificates.

        
17. Wise refuses to let us access our $60k AUD (hey.paris)

Wise has stolen more than $60,000 AUD from us, and refuses to let us access it. We’ve had a Wise account for around 5 years (since they were called …

18. Build real-time knowledge graph for documents with LLM (cocoindex.io)

CocoIndex now supports knowledge graph with incremental processing. Build live knowledge for agents is super easy with CocoIndex!

19. Fingers wrinkle the same way every time they’re in the water too long (www.binghamton.edu)

研究背景与初始发现

宾汉姆顿大学的Guy German教授及其团队此前的研究推翻了“皮肤吸水膨胀导致起皱”的传统认知,指出长时间浸水后,皮下血管收缩才是手指起皱的根本原因

新研究的核心问题

在一次科普问答中,一名学生提出新问题:“起皱的纹路每次都相同吗?”German教授坦言此前未有答案,并由此发起新研究。

研究方法与关键结论

  • 实验设计:将受试者手指浸水30分钟,拍照记录,并在24小时后重复相同条件实验。
  • 发现:对比多次浸水后的图像,手指皮肤的褶皱模式(凸起的环状和脊状纹路)完全一致
  • 科学解释:血管在皮肤下的位置相对固定,其收缩模式具有可重复性,因此起皱纹路不会改变。

附带发现

研究中意外验证了一个已有现象:正中神经受损的手指在浸水后不会起皱,进一步证实起皱是神经介导的血管反应。

潜在应用

该研究成果可能在法医学领域发挥作用,例如:

  • 犯罪现场的指纹比对(尤其涉及长时间浸水物体)。
  • 水中浸泡后遗体的身份识别。

研究展望

German教授表示,这一由简单问题引发的研究打开了新的科学探索方向,团队将继续深入探讨皮肤浸水反应的更多未知特性。

20. The recently lost file upload feature in the Nextcloud app for Android (nextcloud.com)

Discover why Nextcloud file uploads for Android app are not working properly, and how Google’s app store rules are hurting Nextcloud users.

21. How the economics of multitenancy work (www.blacksmith.sh)

CI is chaotic, bursty, spiky, and short-lived. That chaos is a nightmare unless you’re built for it. Blacksmith’s serverless CI cloud thrives on unpredictability: more customers = more noise = smoother utilization = lower costs for everyone. Multitenancy isn’t just efficient — it’s profitable. And yes, the margins are good.

22. Náhuatl and Mayan Language Renaissance Occurring in Mexico (yucatanmagazine.com)

México is home to 68 officially recognized Indigenous languages and is experiencing a remarkable Mayan language renaissance

23. Starcloud (www.ycombinator.com)

Data centers in space. Founded in 2024 by Ezra Feilden, Philip Johnston, and Adi Oltean, Starcloud has 12 employees based in Seattle.

24. New high-quality hash measures 71GB/s on M4 (github.com)

Very fast, high quality, platform-independent hashing algorithm. - Nicoshev/rapidhash

25. Uber to introduce fixed-route shuttles in major US cities (techcrunch.com)

Ride-hail and delivery giant Uber is introducing cheap, fixed-route rides along busy corridors during weekday commute hours in major U.S. cities -- one

27. Show HN: HelixDB – Open-source vector-graph database for AI applications (Rust) (github.com)

HelixDB is an open-source graph-vector database built from scratch in Rust. - HelixDB/helix-db

28. Replicube: A puzzle game about writing code to create shapes (store.steampowered.com)

Replicube is an open-ended programming puzzle game/toy about writing code to replicate 3D voxel-based objects.  Solve puzzles, pursue leaderboard glory, or just make art to share with the in-game community.

29. Coding agent in 94 lines of Ruby (radanskoric.com)

“It’s not that hard to build a fully functioning, code-editing agent.” Thorsten Ball

30. Show HN: Lumier – Run macOS VMs in a Docker (github.com)

Open-source infrastructure for Computer-Use Agents. Sandboxes, SDKs, and benchmarks to train and evaluate AI agents that can control full desktops (macOS, Linux, Windows). - cua/libs/lumier at main · trycua/cua

31. Lock-Free Rust: How to Build a Rollercoaster While It's on Fire (yeet.cx)

A joyride through the dangers of lock-free programming.

32. Y Combinator says Google is a monopolist, no comment about its OpenAI ties (techcrunch.com)

知名创业孵化器Y Combinator(YC)在一份提交给美国法院的“法庭之友”意见书中,指控谷歌是一家“垄断者”,其行为“抑制”了美国初创企业生态系统的发展。YC认为,谷歌在网页搜索和人工智能等领域的统治地位,造成了一个“杀伤区”,使得像它这样的风险投资公司不敢资助那些可能挑战谷歌霸主地位的初创公司,导致市场“人为地停滞不前”。

YC在意见书中指出,它目前正在寻找资助那些开发基于问题和智能体AI工具的初创公司,这些工具有望改变人们与互联网信息的交互方式,但存在谷歌利用其垄断力量减缓这些市场发展的“明显风险”。YC声称,谷歌在过去十多年里“有效地冻结了网页搜索和文本广告市场”。

不过,YC的首席执行官Garry Tan明确表示,他们并非要求立即拆分谷歌,而是主张谷歌应停止其认为反竞争的行为,例如向苹果支付巨款以成为iPhone的默认搜索引擎。同时,YC也要求谷歌做出一些有利于初创公司的举措,比如开放其搜索索引,允许他人基于此训练大型语言模型。

YC的提议带有一个“五年”期限:如果谷歌不在此时间内做出改变,YC则会主张政府强制谷歌剥离或分拆部分业务。Tan在社交媒体上将此描述为“分拆威慑”,并补充说“我们爱谷歌”,但也希望“小型科技”能够成功。

此立场的背景是,谷歌去年在一项关于其搜索市场主导地位的大型反垄断案中败诉。美国政府正在考虑可能对谷歌实施的强制性补救措施,预计将在2025年8月做出决定。YC的意见书正是在此补救措施审议期间提交的。

值得注意的是,YC与谷歌的关系颇为复杂。一方面,谷歌云曾向YC的初创公司提供专用的英伟达GPU集群,谷歌联合创始人拉里·佩奇也曾亲临YC活动演讲,并且谷歌曾收购或投资过多家YC支持的初创公司。另一方面,YC也与OpenAI关系密切,后者正与谷歌在搜索领域直接竞争。有行业观察人士指出,YC提议的补救措施的最大受益者可能是OpenAI,而非YC典型的早期初创公司。对于这一批评,YC尚未做出回应。谷歌方面也未对YC的意见书发表评论,但此前曾表示美国司法部的提案“激进且全面”,将损害消费者和开发者的利益。

33. E-COM: The $40M USPS project to send email on paper (buttondown.com)

The USPS offered to print your email for you. Only spammers said yes.

35. How to Build a Smartwatch: Picking a Chip (ericmigi.com)

How To Build A Smartwatch: Picking A Chip

36. GOP sneaks decade-long AI regulation ban into spending bill (arstechnica.com)

Sweeping provision would halt all local oversight of AI by US states.

37. Material 3 Expressive (design.google)

Google's research reveals how expressive design improves UX, usability, and evokes positive emotions in users

38. Espanso – Cross-Platform Text Expander Written in Rust (github.com)

Espanso 跨平台文本扩展工具

Espanso 是一款使用 Rust 语言编写的开源、跨平台文本扩展工具。它的核心功能是监测用户输入的特定关键词(触发器),并自动将其替换为预设的文本、代码片段、图像或其他内容,旨在通过自动化常用输入来显著提升效率。

主要特性

  • 跨平台:支持 WindowsmacOSLinux
  • 隐私优先:所有数据处理均在本地完成,无跟踪,确保用户隐私安全。
  • 广泛兼容:适用于几乎任何应用程序。
  • 功能丰富
    • 支持表情符号图片扩展。
    • 内置强大的搜索栏,便于快速查找和管理片段。
    • 支持日期的动态扩展。
    • 可执行自定义脚本Shell 命令
    • 允许为特定应用程序配置专属规则
    • 支持创建交互式表单
    • 支持正则表达式作为触发器。
  • 易于管理与扩展
    • 采用基于文件的配置(YAML格式),灵活且易于版本控制。
    • 内置包管理器,可直接从社区的 Espanso Hub 安装和管理预置包。
  • 性能与可靠性:使用 Rust 编写,确保了程序的运行速度和稳定性。
  • 实验性支持:在 Linux 上对 Wayland 显示服务器提供实验性支持。

快速示例

用户可以通过创建 YAML 配置文件定义触发规则,例如:

matches:
  - trigger: ":hello"
    replace: "Hi There!"
  - triggers: [":test1", ":test2"]
    replace: "These both expand to the same thing"

社区与支持

项目拥有活跃的社区支持渠道:

  • 官方网站与文档:espanso.org
  • 社区中心:Espanso Hub
  • Discord 服务器、Subreddit 等用于交流和获取帮助。
  • 在 GitHub 上提供问题报告和功能请求的入口。

团队与许可

项目最初由 Federico Terzi 创建,现由一个小团队负责维护。软件在 GPL-3.0 许可证下开源。开发过程中使用了多个外部库,并对代码签名赞助商 SignPath.io 表示了感谢。用户可通过 PayPal 为项目的发展提供捐赠支持。

39. $20K Bounty Offered for Optimizing Rust Code in Rav1d AV1 Decoder (www.memorysafety.org)

ISRG's Prossimo is committed to moving the Internet's security-sensitive software to memory safe code and to encouraging people to prioritize memory safety.

40. OpenTelemetry protocol with Apache Arrow (opentelemetry.io)

We are excited to announce the next phase of the OpenTelemetry Protocol with Apache Arrow project (OTel-Arrow). We began this project several years ago with the goal of bridging between OpenTelemetry data and the Apache Arrow ecosystem. Apache Arrow is a framework designed for zero-copy exchange of structured data between column-oriented data producers and consumers. We believe that having OpenTelemetry data accessible to external systems through Apache Arrow will lead to powerful integrations, with the potential for new telemetry systems and applications to emerge. For large streams of telemetry, we know that column-oriented data handling is substantially more efficient, with improved data compression and performance.

41. ARMv9 Architecture Helps Lift Arm to New Financial Heights (www.nextplatform.com)

The Armv9 architecture has a lot of technical enhancements to commend it, but as far as Arm Holdings, the creator and licensor of the Arm architecture, is