首页谢先斌的博客

  • 使用 pyproject.toml 制作 Python 安装包

    Python 库/模块打包(Library Packaging)在过去几年里经历了巨大的变革。随着 PEP 517 / PEP 518 以及 PEP 621 标准的普及,Python 社区已经彻底告别了过去混乱的 setup.py 时代,全面拥抱以 pyproject.toml 为核心的现代化、声明式打包方案。本文将全面总结目前 Python 库打包的核心概念、主流工具方案对比以及标准工作流。

  • WebAuthn: Passwordless 认证实现

    WebAuthn (Web Authentication API) 是现代网络安全领域的一项革命性技术。它由 W3C 和 FIDO 联盟共同制定,旨在提供一种**无密码(Passwordless)强多因素认证(MFA)**的标准化方案。本文详细介绍 WebAuthn 的概念、实现原理以及在 Golang 和 Python 中的常见实现库。

  • Agent Client Protocol 协议介绍

    Agent Client Protocol (ACP) 是一项在 2025/2026 年快速兴起的开放协议,旨在彻底解决 AI 编程助手与代码编辑器(IDE)之间的生态碎片化问题。本文是关于该协议的详细介绍,以及一个零依赖、可直接执行的 Python 示例。

    2026-04-19 categories agent,ACP,mcp
  • OpenWrt: 可自定义的路由器

    OpenWrt 是一个针对嵌入式设备(通常是无线路由器)的高度模块化、高度自动化的 Linux 发行版。如果把你的路由器比作一台电脑,原厂固件就像是功能受限的功能机系统,而 OpenWrt 就像是 Android 或 Windows,允许你随意安装软件、修改设置、解锁全部性能。本文详细介绍 OpenWrt 的由来。

    2026-04-12 network openwrt,router
  • Gitlab Rails Console

    gitlab-rails console 是 GitLab 管理员和运维人员非常强大的一个工具。它是 GitLab 底层 Ruby on Rails 框架提供的交互式命令行终端(Rails Console)。

    2026-04-06 git git,gitlab,rails,console
  • Pybind11: C++ 转 Python Bindings

    Pybind11 是一个轻量级的只包含头文件(header-only)的 C++ 库,它的主要功能是将 C++ 代码暴露给 Python(即为 C++ 编写 Python 绑定),反之亦然。

    2026-04-05 python python,cpp,pybind
  • SSH Agent: 私钥管理

    ssh-agent 是 Linux/Unix 系统中非常实用的一个后台程序。它的主要作用是在内存中安全地保存你的 SSH 私钥(及其密码)

    2026-04-04 linux linux,ssh,agent,key
  • samber/do: Go 泛型 DI

    github.com/samber/do 是 Go 语言生态中一个非常受欢迎的依赖注入(Dependency Injection, 简称 DI)工具包。它基于 Go 1.18+ 引入的**泛型(Generics)**特性构建,旨在为 Go 开发者提供一个类型安全、轻量级且功能丰富的依赖注入解决方案。

  • Gitlab bundle 格式介绍

    在 GitLab 的备份文件(那个巨大的 .tar 包)中,如果你将其解压,会在 repositories/ 目录下看到大量以 .bundle 结尾的文件。简单来说,.bundle 文件就是你的 Git 代码仓库的“单文件压缩包”。它是 Git 官方提供的一种标准离线打包格式。

    2026-03-15 git git,gitlab,backup,bundle
  • Docker 部署 Kafka (KRaft 模式)

    随着 Kafka 3.3+ 版本的发布,KRaft 模式(去 ZooKeeper 模式) 已经成为生产就绪的标准。本文介绍基于 Docker Compose 部署 3 节点 Kafka KRaft 集群 的方案,以及生产环境中高频使用的维护命令。

    2026-03-07 bigdata bigdata,kafka,kraft
  • Rclone: 支持S3云存储界命令行工具

    rclone 是一款管理云存储文件的命令行程序,它支持几十种云存储(如 Google Drive, OneDrive, Amazon S3, WebDAV, 阿里云盘等)

  • PM2: Node.js 进程管理

    PM2 (Process Manager 2) 是 Node.js 应用程序的一个带有内置负载均衡器的生产级进程管理器

    2026-02-23 nodejs nodejs,pm2
  • AppImage: Linux app 发行格式

    AppImage 是一种用于在 Linux 系统上分发便携式软件的格式。AppImage 格式提供了一种简单、便携且不依赖系统库版本的方式,让用户在各种 Linux 发行版上运行软件。

    2026-02-22 linux linux,app,AppImage
  • DRBD + Pacemaker + Corosync 实现 GitLab 高可用

    本文介绍基于 DRBD + Pacemaker + Corosync 实现 GitLab 高可用(High Availability, HA)的经典架构。该架构通常是一个 Active/Passive (主/备) 架构。只有一台机器(主节点)运行 GitLab 服务并挂载存储,另一台机器(备节点)实时同步数据。当主节点宕机,备节点会自动接管 VIP(虚拟IP)、挂载存储并启动服务。

  • iSCSI 存储网络完整指南

    本文是一份完整的 iSCSI 存储网络技术指南,涵盖了从基础概念到实际部署的全部内容。文章首先介绍了 SCSI 和 iSCSI 的基本概念及其关系,然后详细说明了 Linux 环境下的三大核心组件:LIO Target(服务器端框架)、targetcli(配置管理工具)和 Open-iSCSI(客户端实现)。文档提供了完整的 Ubuntu 部署示例,包括服务器端的 Target 配置、CHAP 认证设置,以及客户端的发现、连接和使用流程。通过本文,读者可以掌握利用现有以太网基础设施构建低成本、高性能存储区域网络(SAN)的完整方法。

  • .gitlab-ci.yml 简介

    .gitlab-ci.yml 是 GitLab CI/CD 的核心配置文件,它告诉 GitLab Runner 具体要执行什么操作。

    2026-02-16 git git,gitlab,ci
  • Docusaurus 静态网站生成

    Docusaurus 是 Meta(前 Facebook)开源的一款静态网站生成器,专为编写高质量的文档网站而设计。支持一键生成一个包含文档、博客、版本控制和自定义页面的完整网站骨架。

  • Claude Code Project Manager 使用

    CCPM (Claude Code Project Manager) 是一个专为 Claude Code(Anthropic 推出的命令行 AI 编程工具)设计的项目管理框架和工作流系统。其核心目标是解决 AI 辅助编程中常见的“上下文丢失”、“任务混乱”和“难以协作”等痛点。

  • OpenClaw: AI 数字机器人介绍

    OpenClaw(曾用名 Clawdbot、Moltbot)是一个开源、自托管的 AI 智能体(Agent)系统。它不仅仅是一个聊天机器人,更像是一个拥有“手脚”的 24/7 全天候数字员工。本文是关于 OpenClaw 的详细介绍、安装部署及配置指南。

  • Bun: 运行JavaScript 和TypeScript 应用程序的集成工具包

    Bun 发布于 2022 年(1.0 版本于 2023 年发布),由 Jarred Sumner 开发。它的目标是替代 Node.js,并解决 Node.js 长期以来的性能瓶颈和工具链碎片化问题。

    2026-02-07 nodejs nodejs,bun