程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
git tag 推上去,镜像自动进 GHCR:多架构构建、semver 标签,以及 latest 被 prerelease 顶掉的坑
编程
git tag 推上去,镜像自动进 GHCR:多架构构建、semver 标签,以及 latest 被 prerelease 顶掉的坑
2026-10-17 00:04:38
打一个 v* tag 就自动构建、推送多架构 Docker 镜像到 GHCR 的完整 GitHub Actions 写法:semver 标签派生、latest 的 prerelease 门禁、QEMU 与原生 runner 两种多架构方案、provenance 导致 unknown/unknown、GITHUB_TOKEN 推 GHCR 与包公开设置。
自动化发版
Docker
GHCR
GitHub
Actions
CI
CD
写给别人复用的 composable:VueUse 官方指南里的 9 条约定与 5 处取舍
编程
写给别人复用的 composable:VueUse 官方指南里的 9 条约定与 5 处取舍
2026-10-17 00:04:14
面向「要写给别人复用的 composable」的库作者:整理 VueUse 官方指南的通用约定,并逐条说明理由——包大对象用 shallowRef、全局变量走 configurableWindow、内部 watch 透传选项、controls 选项让简单用法保持简单、新 Web API 输出 isSupported、异步函数返回 PromiseLike 以配合 Suspense、无渲染组件包装规范,附适用边界与代码。
Composables
Vue3
组合式函数
VueUse
前端
TypeScript
一次切干净还是渐进式:数据库割接的阶段、回滚,与 PgDog 的 CUTOVER 机制
编程
一次切干净还是渐进式:数据库割接的阶段、回滚,与 PgDog 的 CUTOVER 机制
2026-10-17 00:04:02
讲清 cut-over(数据库割接)到底切的是哪个动作:摄取冻结、最终同步、路由切换与回滚路径,all-at-once 与渐进式的选型判据,再拆解 PgDog 的 CUTOVER 命令、阈值配置、逆向复制,以及反向复制不停导致 WAL 堆积的坑。
cut-over
数据库割接
数据库迁移
PgDog
PostgreSQL
回滚
运维
Illegal mix of collations(1267/1271):用 COLLATION() 定位比较两侧的真实来源
案例
Illegal mix of collations(1267/1271):用 COLLATION() 定位比较两侧的真实来源
2026-10-17 00:03:36
MySQL/MariaDB 报 Illegal mix of collations(1267/1271)怎么排查:从错误码看两侧 collation 来源,用 COLLATION() 与 information_schema 定位冲突列与连接设置,讲清 MySQL coercibility 与 MariaDB derivation 推导规则、COLLATE 修法的索引代价,以及 uca1400_ai_ci 默认变更带来的新冲突。
collation
排序规则
MySQL
MariaDB
数据库
字符集
运维
warnings.warn 的 stacklevel 到底填几:默认 1 指错行、skip_file_prefixes 与怎么写测试断言
编程
warnings.warn 的 stacklevel 到底填几:默认 1 指错行、skip_file_prefixes 与怎么写测试断言
2026-10-17 00:03:32
讲清 Python warnings.warn 的 stacklevel 语义:默认 1 指向 warn 调用行、2 指向调用者;多层包装与装饰器下固定整数难维护;3.12 的 skip_file_prefixes 如何隐式取 max(2,stacklevel);3.13 warnings.deprecated 与 PEP 702;与 filter 的 module 参数交互;Ruff B028 建议与 unsafe fix;以及用 pytest.warns + inspect.currentframe 断言警告来源。
stacklevel
Python
warnings
DeprecationWarning
一个 fix: commit 推上 main 就发版:semantic-release 配置与三个必踩的坑
编程
一个 fix: commit 推上 main 就发版:semantic-release 配置与三个必踩的坑
2026-10-17 00:03:26
commit 驱动的自动发版怎么落地:semantic-release、release-please、Changesets 三者取舍,commit 类型到版本号的映射,以及回写暂存区过不了保护分支、[skip ci] 与 tag push 触发打架、npm OIDC 发布凭据这三个实操坑。
自动化发版
CI
CD
GitHub
Actions
semantic-release
版本管理
用发行版自带工具做服务器自动化:systemd timer、加固 SSH、机群循环与自动打补丁
综合
用发行版自带工具做服务器自动化:systemd timer、加固 SSH、机群循环与自动打补丁
2026-10-16 21:32:19
不用引入新工具,用主流发行版自带的 systemd timer/cron、OpenSSH 加固(受限密钥 command=/from=、Match+ProxyJump)、ssh+bash 机群循环、logrotate 与 unattended-upgrades/dnf-automatic 搭一套可复现的服务器自动化,并说清脚本能执行但不能观察/决策/解释的边界。
运维
Shell
Linux
SSH
systemd
sup:用一份 Supfile 把命令并行发到多台主机,无需 agent 的部署工具
编程
sup:用一份 Supfile 把命令并行发到多台主机,无需 agent 的部署工具
2026-10-16 21:31:15
pressly/sup(Stack Up)是一个用一份 YAML(Supfile)把命令并行发到多台主机的部署工具,复用系统 ssh,不用装 agent。本文讲清 networks/commands/targets 结构、serial 滚动更新、once 只在单机执行、upload/交互式 stdin、target 组合与失败即中断,以及 ssh-agent 连不上的排错。
Shell
部署
运维
SSH
Go
golang.org/x/net v0.60.0 修复 5 个 HTTP/2 问题:Trailer 内存放大、窗口变更 CPU 放大、flow control 重复退还与 HPACK 竞态
编程
golang.org/x/net v0.60.0 修复 5 个 HTTP/2 问题:Trailer 内存放大、窗口变更 CPU 放大、flow control 重复退还与 HPACK 竞态
2026-10-16 21:08:36
golang.org/x/net v0.60.0 修复 5 个 HTTP/2 问题:Trailer 头导致 server 内存耗尽(CVE-2026-78659)、反复变更 initial window 造成 CPU 放大(CVE-2026-78669)、flow control 重复退还(CVE-2026-78663)、HPACK encoder 竞态打崩 server(CVE-2026-97032)、畸形 framing 头致 response smuggling。含机制、修复与 Go issue 链接。
Go
HTTP
2
安全
net
http
Kubernetes 新增核心 CVE:StatefulSet 跨命名空间建 Pod、Windows kubectl cp 路径穿越、CSI subDir 越权删除
资讯
Kubernetes 新增核心 CVE:StatefulSet 跨命名空间建 Pod、Windows kubectl cp 路径穿越、CSI subDir 越权删除
2026-10-16 21:07:37
Kubernetes 官方 CVE 订阅源 10 月新增一批条目。核心(非 ingress)部分:StatefulSet/ControllerRevision 写权限可跨命名空间建 Pod、Windows 节点 subPath 符号链接 NTLM coercion、Windows 上 kubectl cp 路径穿越、CSI SMB/NFS 通过 subDir 越权删目录。含 CVE 号与 issue 链接。
Kubernetes
CVE
安全
运维
Hermes Agent v0.22.0:免 Key 引导上手,一键装本地 llama.cpp
综合
Hermes Agent v0.22.0:免 Key 引导上手,一键装本地 llama.cpp
2026-10-16 21:06:46
Nous Research 的 Hermes Agent v0.22.0:新装桌面版用免费模型 nous/welcome 免 API Key 引导配置,新增 Gmail/Linear/Notion 连接器,内置一键 llama.cpp 本地模型运行时,600 插件目录,源码从 106 万行瘦身到 69.8 万行。含安装与更新通道。
AI
Agent
开源
llama.cpp
工具
SemVer
ShellCheck 到底比 bash -n 多查了什么:三条高频规则与 CI 落地
编程
ShellCheck 到底比 bash -n 多查了什么:三条高频规则与 CI 落地
2026-10-16 21:05:59
ShellCheck 比 bash -n 多做变量数据流与控制流分析。讲清 SC2086(引号)、SC2164(cd 退出码)、SC2155(local 吞退出码)三条高频规则的成因与改法,以及 CI/pre-commit 集成、disable 滥用、忽略被 source 文件等落地坑。
Shell
ShellCheck
bash
运维
Vite+ 1.0:用一个 vp 命令替掉 vite、vitest、eslint、prettier 的组合
综合
Vite+ 1.0:用一个 vp 命令替掉 vite、vitest、eslint、prettier 的组合
2026-10-16 21:04:17
VoidZero 的 Vite+ 1.0 正式发布:单个 vp 命令统一管理 Node 运行时、包管理器、dev server、lint/format、测试、构建与任务,替掉 vite/vitest/eslint/prettier/tsup/turbo 的组合。含底层组件、vp migrate 迁移步骤与 1.1 的启动/内存优化。
Vite
前端工具链
Rolldown
Node.js
Composer 2.10.3 修掉两条 CVE:Perforce 源地址可注入命令,bin 路径能穿出包目录
编程
Composer 2.10.3 修掉两条 CVE:Perforce 源地址可注入命令,bin 路径能穿出包目录
2026-10-16 21:03:41
Composer 2.10.3 修复两条 CVE:恶意 Perforce source URL 可在 install/update 时注入命令(需装了 p4 并用了非 Packagist 仓库),以及 bin 路径可穿出包目录、绕过早前修复。给出触发条件、受影响版本与替代缓解。
Composer
PHP
CVE
供应链安全
containerd 三条 Moderate 公告:拉镜像写满磁盘、checkpoint 恢复泄漏 mount、畸形 digest 打崩 daemon
资讯
containerd 三条 Moderate 公告:拉镜像写满磁盘、checkpoint 恢复泄漏 mount、畸形 digest 打崩 daemon
2026-10-16 21:01:57
containerd 2026-10-13 一次性发布三条 Moderate 安全公告:镜像拉取无字节上限可写满主机磁盘、CRI checkpoint 恢复失败泄漏 mount/snapshot、畸形 digest 触发 daemon panic。修复版本 2.4.2/2.3.7/2.2.10,附受影响区间与缓解配置。
containerd
Kubernetes
容器安全
CVE
Go 1.26.9 / 1.27.2 修复 15 个安全漏洞:HTTP/2 服务可被远程打崩,ReverseProxy 对 CONNECT 改返 405
资讯
Go 1.26.9 / 1.27.2 修复 15 个安全漏洞:HTTP/2 服务可被远程打崩,ReverseProxy 对 CONNECT 改返 405
2026-10-16 20:02:06
Go 1.26.9 与 1.27.2(2026-10-08)修复 15 个安全漏洞:HTTP/2 服务可被远程打崩或内存耗尽,HTTP/1 CONNECT 处理导致请求走私,ReverseProxy 现在对 CONNECT 返回 405,Range 头新增 200 段上限。本文列出各 CVE 的影响面与升级命令。
Go
安全
net
http
HTTP
2
运维
MASH playbook:用一套 Ansible 部署 Nextcloud、Jellyfin、Vaultwarden 等自托管服务
综合
MASH playbook:用一套 Ansible 部署 Nextcloud、Jellyfin、Vaultwarden 等自托管服务
2026-10-16 20:01:12
MASH 是一个把 Nextcloud、Jellyfin、Vaultwarden 等 FOSS 服务以 Docker 容器统一部署的 Ansible playbook。本文给出 git clone、just update、just install-all 的安装命令、导入旧数据时先不启动的处理、tags 用法,以及重跑与升级注意点。
Ansible
Docker
自托管
运维
MASH
微信支付商家转账(用户确认模式):接口 200 不等于到账,场景报备 PARAM_ERROR 与幂等重试的坑
代码
微信支付商家转账(用户确认模式):接口 200 不等于到账,场景报备 PARAM_ERROR 与幂等重试的坑
2026-10-16 09:01:54
微信「商家转账到零钱」升级后新增用户确认模式:发起转账 HTTP 200 不代表到账,state=WAIT_USER_CONFIRM 才能引导用户收款,24 小时不确认自动关单退回。本文整理单据状态机、transfer_scene_report_infos 场景报备为何总报 PARAM_ERROR、金额与姓名边界、限额口径、幂等重试铁律、撤销与失败原因枚举、回调与拉起确认收款,附官方文档链接。
微信支付
商家转账
APIv3
支付对接
接口排障
Protobuf 字段改编号会毁数据、改名字却没事:wire 层的破坏性变更规则
编程
Protobuf 字段改编号会毁数据、改名字却没事:wire 层的破坏性变更规则
2026-10-16 00:05:56
Protobuf 二进制线上格式按字段编号而不是名字编码,所以改名安全、改编号会悄悄毁数据。本文给出 wire 层判定表、reserved 的意义、int32→int64 这类条件安全改动、删字段的三步生命周期,以及 buf breaking 的 WIRE/WIRE_JSON/PACKAGE/FILE 四层检查。
BC破坏性变更
Protobuf
gRPC
向后兼容
破坏性变更
API设计
MySQL 报 ER_1366 Incorrect string value:从驱动到字段排查连接字符集链
编程
MySQL 报 ER_1366 Incorrect string value:从驱动到字段排查连接字符集链
2026-10-16 00:05:00
存 emoji / 中文报 ER_1366 Incorrect string value、ER_1300、ER_3988 时,问题常在客户端、连接层、服务端对象三处字符集不统一。给出 SHOW VARIABLES 该看的变量、SET NAMES 与 character-set-client-handshake、实例→库→表→字段的修改优先级,以及 PHP/Python/Go/JDBC 驱动侧配置与 latin1 双重编码陷阱。
utf8mb4
MySQL
字符集
乱码
emoji
排障
数据库
collation
SemVer 范围与依赖解析:^ 和 ~ 的边界、锁文件、扁平与嵌套
编程
SemVer 范围与依赖解析:^ 和 ~ 的边界、锁文件、扁平与嵌套
2026-10-16 00:04:57
把 SemVer 范围写法展开成区间(^、~、0.x 退化、预发布默认不匹配),讲清范围与锁文件的分工、npm ci/--frozen-lockfile/cargo --locked 的冻结安装、应用与库是否提交锁文件,以及扁平与嵌套两种解析策略和 npm hoisting 的副作用。
语义化版本
SemVer
依赖管理
锁文件
npm
添加一个字段安全,改一个默认值就破坏:判断改动算不算破坏性变更
编程
添加一个字段安全,改一个默认值就破坏:判断改动算不算破坏性变更
2026-10-16 00:04:48
用一张判定表和三层兼容(二进制/源码/行为)模型,讲清哪些改动算破坏性变更:加字段、改默认值、收紧校验、改参数名、加 virtual 分别会破坏谁;附原生 DLL、COM、.NET 的具体机制与并行提供→弃用期→删除的发布流程。
BC破坏性变更
向后兼容
破坏性变更
API设计
语义化版本
兼容性
SemVer 2.0.0 优先级比较:alpha.10 排在 alpha.9 之前,以及五个实现坑
编程
SemVer 2.0.0 优先级比较:alpha.10 排在 alpha.9 之前,以及五个实现坑
2026-10-16 00:04:24
从 SemVer 2.0.0 规范的优先级比较算法切入,讲清 alpha.9 与 alpha.10 的排序、前导零非法、构建元数据不参与比较、0.x 下 ^ 退化,以及 Go 的 v 前缀与 golang.org/x/mod/semver 用法,附可运行的排序与校验示例。
语义化版本
SemVer
版本号
依赖管理
Go
pt-online-schema-change 在线改表:1 条触发器硬约束、4 道安全阀与手动 swap 流程
编程
pt-online-schema-change 在线改表:1 条触发器硬约束、4 道安全阀与手动 swap 流程
2026-10-16 00:03:58
pt-online-schema-change 靠触发器把改表期间的增量同步到新表,再用原子 RENAME 换表,从而不锁原表。本文按官方文档梳理它为什么不锁表、外键四种处理方式、主键/触发器/复制/负载四道安全阀,以及 --alter 的硬约束与推荐的 dry-run 到手动 swap 上线流程。
在线改表
pt-online-schema-change
MySQL
OnlineDDL
DDL
Percona
触发器
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
330
下一页
共 330 页
到第
页
确定