主要写 C++,常年和 CAD / GIS、Windows 桌面开发、跨平台工程 打交道。
以前折腾过摄影测量、SfM、SLAM 和计算机视觉,后来慢慢把更多时间花在 GIS、地图服务、CAD 和各种 C++ 工程问题上。最近又掉进了本地大模型和 Coding Agent 的坑里,没事会研究 Codex、LM Studio、GGUF、Prompt Template 这些东西到底是怎么工作的。
我有个习惯:碰到一个东西“能用,但不太顺手”,就很容易开始琢磨能不能自己改一改。
有时候最后是一个正经项目,有时候只是一个很小的工具。文件整理、Windows 上缺的某个小功能、设备控制、重复操作自动化……只要它能解决一个具体问题,我就挺愿意花点时间把它写出来。
很多仓库其实就是这么来的。
-
C++ / Windows / Qt
桌面程序、系统 API、跨平台适配,以及各种看起来不大、真正做起来细节很多的问题。 -
CAD / GIS
地图服务、坐标系、空间数据、GeoPackage、WMS / WMTS / ArcGIS REST,以及 CAD 相关开发。 -
SfM / SLAM / Photogrammetry
这是以前投入很多时间的方向。图像检索、特征匹配、增量重建、局部优化之类的东西,现在偶尔还是会翻出来看看。 -
Local LLM / Coding Agent
最近比较上头。除了模型本身,我更喜欢研究它怎么接进真实开发流程:上下文、工具调用、指令层级、兼容性、配置和各种边边角角。
一开始只是想让 Codex 在不同模型之间切换方便一点。
然后开始碰到配置、备份、本地模型识别、LM Studio、GGUF、Prompt Template、非默认端口、指令层级兼容……
于是事情逐渐变得不那么“一点”了。
工作里经常遇到这类迁移问题。
除了把代码编过之外,我比较在意最后的东西是不是真的像个正常软件:布局、字体、交互、编码、路径、系统行为和各种平台差异,都得慢慢磨。
我其实挺喜欢写这种东西。
不一定要很复杂,也不一定有什么“技术含量”。可能只是因为某件事手动做了两三次以后开始觉得烦,或者系统里刚好少了一个我想要的功能。
如果几个小时、几百行代码能让以后省点事,我一般会觉得很值。
写代码对我来说很大一部分乐趣就是:把一个反复出现的小麻烦,变成以后不用再想的东西。
| Project | 简单说说 |
|---|---|
| Codex-Multi-Model-Manager | 给 Codex Desktop 切换 OpenAI / DeepSeek / LM Studio 模型用的小工具。后来越写越深,顺手处理了不少本地模型兼容问题。 |
| GlobalBase | 自己慢慢攒起来的 C++ 基础工具库。UTF-8、文件、日志、线程池、缓存、进程、网络、加密、几何……平时哪里缺一点,就往里面补一点。 |
| GlobalGeoBase | 在 GlobalBase 上继续补 GIS 相关的基础能力,包括 CRS、Extent、GeoPackage 等。 |
| ArcGISRestService | C++ 下对 ArcGIS REST 服务、空间参考、几何和相关数据类型的一些实现。 |
| MapWeaver | 从 WMS / WMTS 获取地图数据,做瓦片拼接、重投影、裁剪,再写入 GeoPackage。 |
| LOIP | 以前做 SfM 重叠影像对学习与检索时留下的研究代码和数据。 |
| On_the_fly_SfM | 在线 / 实时 SfM 方向的一些 C++ 工程实验。 |
这里也有不少 fork、实验代码和半成品。
有的是为了研究源码,有的是当年做实验留下来的,还有些单纯就是“这个东西看起来挺有意思,先拉下来再说”。
C++ · Python · C# · Qt · CMake · Visual Studio · vcpkg
GDAL · QGIS · COLMAP · OpenCV · CUDA · Eigen
Windows · Linux · .NET · LM Studio · Codex
看到有意思的东西,我一般会想拆开看看。
碰到不好用的东西,我一般会想改改看。
至于最后为什么又多了一个仓库……大概就是这么回事。🦈

