常驻装备

使用中的工具

一张仍在变化的工作台快照:这些工具参与构建、测量,也帮助我保持思考。

这是我实际使用的工具的当前快照。随着工作流变化,它也会随时间改变。

计算环境

  • Windows 作为宿主桌面操作系统。
  • WSL2 与 Ubuntu 24.04 作为我的主要 Linux 开发环境。
  • 大多数系统开发、构建和命令行工具都运行在 WSL2 内。

IDE 与编辑器

JetBrains IDE 现在是我的主要开发环境。

  • CLion 用于 C 和 C++。
  • IntelliJ IDEA 用于 Java。
  • PyCharm 用于 Python。
  • WebStorm 用于 TypeScript、Web 开发和 LaTeX。
  • DataGrip 用于数据库。
  • RustRover 用于 Rust。
  • VS Code 仍然保留作为备用工具,而不是我的主要 IDE。

相比把编辑器仅仅当作轻量文本界面,我更偏好语义导航、重构、代码检查以及理解项目上下文的工具能力。

AI

  • ChatGPT Pro 用于推理、研究、讨论和技术探索。
  • Codex 是我的主要编码智能体。
  • 我既会将 Codex 作为独立应用使用,也会把它与 JetBrains IDE 配合使用。

我通常会先让智能体探索代码、文档和运行时证据,再审阅它的分析,亲自作出架构决策,最后让它完成实现并运行回归检查。

编程语言

  • C++23 和 Python 是我的主要语言。
  • TypeScript 用于 Web 前端,通常搭配 React 和 Vite。
  • 我目前正在更认真地探索 Java。
  • 当 Rust 的生态系统或语言模型适合任务时,用它进行系统开发。
  • Markdown 和 LaTeX 用于技术写作。

构建与包管理工具

  • CMake 用于 C 和 C++ 项目。
  • uv 用于现代 Python 项目与依赖管理。
  • pnpm 用于 TypeScript 和前端项目。
  • Git 和 GitHub 用于版本控制和公开项目托管。
  • GitHub Actions 用于 CI 和部署。

数据库

  • PostgreSQL 是我开发数据密集型系统时的默认数据库。
  • 当向量搜索属于同一个事务系统时,使用 pgvector。
  • 适当时,我会使用 Alembic 和 SQLAlchemy 等迁移与类型化数据访问工具。

Web

我目前默认的前端技术栈是:

  • TypeScript
  • React
  • Vite
  • pnpm

对于静态前端和项目展示,我倾向于把构建产物发布到 GitHub Pages,而不是自行维护 Web 服务器。

基础设施

  • Cloudflare 用于 DNS、域名和隧道。
  • GitHub Pages 用于静态站点和前端部署。
  • GitHub Actions 用于自动构建与发布。
  • PostgreSQL 用于有状态应用数据。
  • 真正需要运行时的后端服务则使用 Linux 服务器和本地 WSL2 环境。

我的公开技术项目和站点都位于 moesegfault.dev 之下。

系统与性能工作

视项目而定,我会使用以下工具:

  • perf
  • NVIDIA Nsight
  • Valgrind
  • heaptrack
  • LIKWID
  • mpiP
  • Score-P

通常,相比仅从源代码进行推断,我更倾向于测量运行时行为。

写作与发布

我主要使用 Markdown 和 LaTeX 写作。

我的公开写作和作品都组织在 moesegfault.dev 命名空间下;其发布站点正日益同时成为写作空间和作品档案库。