时序数据降采样:LTTB 与 MinMaxLTTB

最近在工作中需要处理一些时序数据,需要对时序数据做降采样(Downsampling)处理。因此学习了一下 LTTB 算法和 MinMaxLTTB 算法

从降采样的技术上来说,大致可以分成 2 种1

  • 特征保持(Characteristic Preserving):此时降采样的目标是让统计特征(均值、方差等)在降采样前后尽量一致
  • 值保持(Value Preserving):从原始数据点中挑选数据点,目标是让整体形状在降采样前后尽量一致

无论是 LTTB 算法还是 MinMaxLTTB 算法,本质上都是值保持的一种。即他们的目标都是在降采样后尽量维持原来的形状

深入理解访问者模式:双分派的艺术

在 AI Coding 时代,代码实现已经不是瓶颈,更难的反而是你如何去约束 Coding Agent 的行为,让它可以有高质量的代码产出。这些约束一般是比较 high-level 的东西,像是设计模式、软件架构等。在这样的时代背景下,了解这些知识在我看来是更加重要的。以设计模式为例,你需要知道对应的设计模式是什么,它解决了什么问题,适用于什么场景等才能够用清晰的自然语言描述去指导 Coding Agent。今天要要介绍的就是其中一个设计模式————访问者模式(Visitor Pattern)

OpenCode & OpenSpec:SDD 实践

作为一名程序员,还是会被近几年 AI 编程领域的突飞猛进吓一跳,印象中,有这么几个明显的阶段

  • LLM for Tab 补全:代码主要是程序员编写,LLM 只是会预测下一段要放什么。典型代表比如 TablineCopilot
  • 氛围编程(Vibe Coding):程序员不再逐行写代码,而是用自然语言描述需求,让 LLM 帮你做跨文件修改。典型代表比如 CursorClaude
  • Spec-Driven Development (SDD):氛围编程有许多毛病,比如上下文漂移、软件架构不稳定等,这导致它很难在生产环境中落地。因此社区乃至工业界都开始探寻超越 Prompt 工程的方法去让 LLM 可以长时间稳定生成可用的代码,而不是一堆 AI 垃圾(AI Slop)。SDD 就是目前看来很有希望的一个方向
Warning

事实上,在编程领域以外也存在这样的失败模式,但我们这里只关注 AI 编程领域