用两台 DGX Spark(GB10)部署 DeepSeek-V4-Flash(284B/13B-active,官方 FP8)的实践记录:为什么 128GB 单机装不下 149GB 权重、如何为 GB10 的 sm_121 架构选对 vLLM 引擎、源码构建中 torch 被悄悄降级的隐蔽问题,以及 MTP 调优后的实际吞吐。
K8s Service 访问链路:域名如何解析到 ClusterIP,再转发到 Pod
我顺着一个 Pod DNS 排查短视频,把 K8s Service 网络链路重新整理了一遍:DNS 解析、ClusterIP 到 Pod IP 的 DNAT、EndpointSlice、负载均衡,以及 1.36 时代 iptables/IPVS/nftables/eBPF 的取舍。
mirrord 用户授权的 GitOps 化:按用户维护 RBAC 清单
整理如何将 mirrord 开发者授权管理从脚本式操作转换为 GitOps 模式:通过维护 RoleBinding 和 ClusterRoleBinding 的声明式 YAML,实现可审计、可回滚、默认拒绝的权限控制。
重启即 sealed:homelab Vault 自愈链路的三个坑
记录一次 Proxmox VM 重启后 Vault sealed 导致 ExternalSecret 失败的排查:postStart 解锁 hook 的 JSON grep 误判、ESO 恢复触发,以及恢复脚本如何改成 exit code 三态判定。
feature 加得快,不等于产品更好——AI 时代的一点克制
读 Nick Hodges 的《A new challenge for software product managers》后,我顺手记下几条工程师视角的补充:当 AI 把“工作量”这道闸拆掉后,我会怎么判断一个 feature 值不值得进来。
VS Code 跑 mirrord 撞上 WebSocket 403:从 IDE 报错追到 K8s impersonation 的鉴权链路
把 mirrord OSS 接入 VS Code 时撞上一个 WebSocket 403,最后追到 K8s impersonation 的两条 authorization 链路 — 记录排查、原理和最小修复。
给 mirrord 开发者按 namespace 签发 kubeconfig
记录我如何用 kind、Kubernetes CSR 和 RoleBinding,为 mirrord OSS 做一套按 namespace 授权的开发者接入 demo。
Java 21→25 与 Spring Boot 3.5→4.0:为什么升级,怎么升级
整理一次 Java 21→25 与 Spring Boot 3.5→4.0 的升级思路:动因、核心变化,以及手动迁移与 OpenRewrite 自动化两条路径上的取舍。
Contract First 落地实践:工具栈、团队协作与我踩到的坑
围绕 OpenAPI 的 Contract First 实践笔记:工具栈如何拼、AI 怎么起草 spec、团队同步机制、breaking change 治理、常见坑的对策,以及老项目的迁移路径。
我怎么理解 AI Agent Skills:规范、实证,以及落地时的取舍
我把 Agent Skills 的开放规范、SWE-Skills-Bench 的实证结果,以及 Daniel Sogl 对 skill eval 的反思放在一起看,试着回答三个问题:skill 适合解决什么问题、什么时候值得投入,以及为什么没有 eval 的 skill 很容易变成一份没人验证的 Markdown。