构建高性能高程 API

本文转载自《构建高性能高程 API》 在彩云科技,我们始终致力于为用户提供更高时空分辨率的气象数据。在过去这些年中,我们始终面临一个挑战:由于高程数据分辨率的限制,徒步、越野等户外活动爱好者用户经常遇到彩云提供的数据与实际感受有着明显偏差,这种情况在海拔变化剧烈的山地和高原地区尤为突出。 ...

 · 4 min · 1897 words · ringsaturn

tzf 的演进过程

tzf 及相关项目的基础开发工作基本稳定了,在之前的文章零星有些开发和设计过程的资料: 2022-05-29, 在 Go 中将经纬度转时区 2022-08-01, Python 中经纬度转时区新的选择 2022-08-27, 用 Go 编写 Python 扩展 2022-09-10, tzf 预览图制作 2022-11-24, tzfpy Rust 重写 这一篇是最终的总结,从项目的启动到逐步优化和演进的过程。 ...

 · 6 min · 2685 words · ringsaturn

彩云天气地理查询优化(2): 行政区划查询

本文转载起《彩云天气地理查询优化(2): 行政区划查询》 在彩云天气 App 和 API 里可以获取到当前经纬度的气象预警信息,比如「大风蓝色预警」。 不同国家地区的预警发布规则不一样,在中国是按照行政区划层级来发布的,其中最小到县级行政区。 所以在实现中,需要将经纬度转换成行政区划层级信息,再查找相关的预警信息。 在过去几年中,这部分模块经历了多次重构和完善,在此分享下每个版本的实现方式。 ...

 · 5 min · 2231 words · ringsaturn

彩云天气地理查询优化(1): 气象站数据查询

本文转载自《彩云天气地理查询优化: 最近的 N 个点》 我们从一个实际业务场景的谈起: 如何找到离北京市海淀区 768 创意产业园最近的 K 个国家级观测站? 最简单的思路是完整遍历所有候选站点,然后计算每个站点和 768 的距离,按照距离从小到大,选最多前 K 个。 这个代码并不难写。但是问题是慢。 ...

 · 3 min · 1447 words · ringsaturn

工程上的一些想法

由于过往的各种条件限制,如数据库性能不够、PaaS 平台功能不足、对特定领域的问题理解不充分,线上的服务一定会有很多妥协解决方案。这些问题不会让服务彻底不可用,但一定会困扰团队,容易让人担忧系统的可靠性。特别是提供 toB 服务而言可靠性与准确性是一样重要的。 ...

 · 4 min · 1594 words · ringsaturn

Go 在只读高并发场景下的优化

距离决定用 FastAPI 重写 Flask 应用已经过去了一年了, 年中的时候在 FastAPI 上尝试了很多性能优化方案,但机器的负载水平已经快到头了, 只能承认这条路走不通,需要换一个快得多语言来做。 决定用 Go 再重写,又经历了若干次的优化,目前已经稳定运行。 线上峰值 QPS 接近 10K,应用内统计延迟在 2ms 之内,依赖服务统计延迟在 13ms 左右。 记录下若干有意思的事情。 ...

 ·  · 3 min · 1032 words · ringsaturn
彩云天气命令行版

彩云天气命令行版

2019 年的时候想学 Go 的动力来自看到了这个仓库 schachmat/wego 可以在命令行里看天气。 2021 年用了点业余时间终于搞出来了 caiyunapp/wego。 到 dashboard.caiyunapp.com 注册账号申请一个 Token, 然后按照提示配置下 ~/.wegorc 里的 API Token 和经纬度即可。 ...

 · 1 min · 99 words · ringsaturn

被迫「iPad Only」的日子

1 写于 2019-10-19,发表于 2019-12-28 2019 年 9 月末,我的电脑坏了,被迫临时使用 iPad 工作。在此记录一下想法。 硬件信息: iPad Pro 10.5 Smart Keyboard HHKB Professional BT 软件: Blink Working Copy iA Writer Drafts 系统: iOS 13.1 开发工作 由于开发工作不涉及本地环境,所以我只要全程 SSH,使用 tmux 和 vim 进行开发。iPadOS 上的终端工具我尝试过一些:Textastic, Code Editor (Coda), Blink 等。在这其中,我最喜欢的是 Blink 这个工具,足够简单,基本功能又够用: ...

 · 3 min · 1409 words · ringsaturn

一会下雨吗?

国内分钟级降水预报做得比较好的是彩云天气,但是 App 在 iPad 上尚不支持横屏与键盘快捷键。所以有时候想看是否降水要打开 App,体验是不怎么好的。好在彩云天气有大量的数据 API 提供给了开发者,并且仅仅用其中最简单的一些,就能得到和彩云天气自家 App 一样的降水预报功能(受限于设备无法实现降水事件的主动推送)。 ...

 · 2 min · 674 words · ringsaturn