首页谢先斌的博客
-
使用 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 中的常见实现库。
2026-04-26 http/https WebAuthn,web,passwordless,passkeys -
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 的由来。 -
Gitlab Rails Console
gitlab-rails console是 GitLab 管理员和运维人员非常强大的一个工具。它是 GitLab 底层 Ruby on Rails 框架提供的交互式命令行终端(Rails Console)。 -
Pybind11: C++ 转 Python Bindings
Pybind11 是一个轻量级的只包含头文件(header-only)的 C++ 库,它的主要功能是将 C++ 代码暴露给 Python(即为 C++ 编写 Python 绑定),反之亦然。
-
SSH Agent: 私钥管理
ssh-agent是 Linux/Unix 系统中非常实用的一个后台程序。它的主要作用是在内存中安全地保存你的 SSH 私钥(及其密码)。 -
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 官方提供的一种标准离线打包格式。 -
Docker 部署 Kafka (KRaft 模式)
随着 Kafka 3.3+ 版本的发布,KRaft 模式(去 ZooKeeper 模式) 已经成为生产就绪的标准。本文介绍基于 Docker Compose 部署 3 节点 Kafka KRaft 集群 的方案,以及生产环境中高频使用的维护命令。
-
Rclone: 支持S3云存储界命令行工具
rclone 是一款管理云存储文件的命令行程序,它支持几十种云存储(如 Google Drive, OneDrive, Amazon S3, WebDAV, 阿里云盘等)
-
PM2: Node.js 进程管理
PM2 (Process Manager 2) 是 Node.js 应用程序的一个带有内置负载均衡器的生产级进程管理器。
-
AppImage: Linux app 发行格式
AppImage 是一种用于在 Linux 系统上分发便携式软件的格式。AppImage 格式提供了一种简单、便携且不依赖系统库版本的方式,让用户在各种 Linux 发行版上运行软件。
-
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)的完整方法。
2026-02-18 storage iSCSI,LIO Target,targetcli,Open-iSCSI,SCSI,Storage Area Network+5 -
.gitlab-ci.yml 简介
.gitlab-ci.yml是 GitLab CI/CD 的核心配置文件,它告诉 GitLab Runner 具体要执行什么操作。 -
Docusaurus 静态网站生成
Docusaurus 是 Meta(前 Facebook)开源的一款静态网站生成器,专为编写高质量的文档网站而设计。支持一键生成一个包含文档、博客、版本控制和自定义页面的完整网站骨架。
2026-02-15 staticgen staticgen,docusaurus -
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 长期以来的性能瓶颈和工具链碎片化问题。