程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
CLDR locale 继承:en-GB 的父级是 en-001,不是 en
案例
CLDR locale 继承:en-GB 的父级是 en-001,不是 en
2026-10-20 00:07:16
CLDR 的 locale 继承不是删最后一个子标签:en-GB 的父级是 en-001,en-AT 要经过 en-150,es-MX 走 es-419,zh-Hant 直接回 und。本文用 5.8KB 的 parentLocales.json 给出真实映射、可运行的继承链代码,以及词条放在哪一层会影响哪些地区。
CLDR
locale
i18n
国际化
en-001
parentLocales
Node.js
在 RDS 上跑 pt-osc:ERROR 1419、参数组重启与 --recursion-method 假死
编程
在 RDS 上跑 pt-osc:ERROR 1419、参数组重启与 --recursion-method 假死
2026-10-20 00:06:37
在 Amazon RDS / Aurora 上跑 pt-online-schema-change,失败点不在 DDL 而在权限模型和工具默认行为:开自动备份就有 binlog,建触发器被 ERROR 1419 挡住,而 RDS 不允许 SET GLOBAL,只能新建 custom 参数组并重启;接着缺 PROCESS 权限、--recursion-method 自动发现从库导致进程挂死(PTDEBUG 停在 MasterSlave:4350 SELECT @@SERVER_ID);最后清理时 DROP 顺序搞反会撞上 ERROR 1146。
pt-online-schema-change
MySQL
RDS
Aurora
OnlineDDL
权限
Percona
AES-256-GCM 字段加密后 WHERE email=? 查不到:用 HMAC 盲索引补搜索,以及 4 个上线前缺口
编程
AES-256-GCM 字段加密后 WHERE email=? 查不到:用 HMAC 盲索引补搜索,以及 4 个上线前缺口
2026-10-20 00:04:37
手机号、邮箱做字段级加密后,随机 nonce 让密文失去可比性,登录查询和唯一约束同时失效。这篇用 PHP 的 AES-256-GCM 加 HMAC-SHA256 盲索引还原等值查询,给出建表结构、索引同步陷阱,并划清哪些列(低基数、password_hash、金额、时间)根本不该加密。
敏感信息加密
AES-256-GCM
盲索引
数据脱敏
PHP
VueUse v15 升级笔记:templateRef 被删、timer 换成 scheduler,还有 6 处会改行为的变更
编程
VueUse v15 升级笔记:templateRef 被删、timer 换成 scheduler,还有 6 处会改行为的变更
2026-10-20 00:04:32
面向已在生产使用 Vue 3 + VueUse 的项目:v15 要求 Vue 3.5、Node 22,templateRef 移除改用 useTemplateRef,timer 选项统一为 scheduler,useThrottleFn 的 trailing 默认改为 true,useEventSource 的 message 事件与 useIDBKeyval 跨标签页同步都会改变现有行为。逐项给出改法与回归顺序。
VueUse
Vue3
组合式函数
前端升级
Node 上 Intl 输出不一致:CLDR 48 的 unit ID 改名、周编号与 de-CH 分隔符
案例
Node 上 Intl 输出不一致:CLDR 48 的 unit ID 改名、周编号与 de-CH 分隔符
2026-10-20 00:04:18
同一段 Intl 代码在本地和线上输出不一致,多半不是代码问题,而是运行时打包了不同版本的 CLDR。本文给出 CLDR 48 的迁移清单:unit ID 从 permillion 改成 part-per-1e6、周编号改按 ISO、de-CH 分组符变 apostrophe、era code 与 territories 字段删除,并给出用 cldr-json 读数据、在 CI 里做版本与行为快照断言的做法。
CLDR
ICU
i18n
国际化
locale
Node.js
Intl
pt-osc 中断之后:残留触发器、卡在 MDL 上的 DROP TRIGGER 与 3.6.0 的 --resume
编程
pt-osc 中断之后:残留触发器、卡在 MDL 上的 DROP TRIGGER 与 3.6.0 的 --resume
2026-10-20 00:03:55
pt-online-schema-change 被 kill 或 critical-load 中止后,原表会留下三个 pt_osc_* 触发器、一张拷了一半的 _table_new,以及 3.6.0 才有的 history 进度记录。本文讲残留物怎么核对清理、DROP TRIGGER 为什么会被 MDL 卡住一年(lock_wait_timeout 默认 31536000)、触发器没删却把新表 drop 造成 ERROR 1146 的失败顺序,以及 --history/--resume 的四个前提与局限。
pt-online-schema-change
MySQL
OnlineDDL
DDL
Percona
触发器
故障恢复
ghcr.io 拉镜像报 unauthorized / denied / manifest unknown:按凭据→权限→名字的顺序排查
编程
ghcr.io 拉镜像报 unauthorized / denied / manifest unknown:按凭据→权限→名字的顺序排查
2026-10-20 00:03:47
ghcr.io 拉镜像失败的三种形态(401 unauthorized / 403 denied / 404 manifest unknown)怎么区分:先用 docker logout 清本地坏凭据,再用 /token 换 token 打 manifest 接口定位是凭据还是权限;GitHub 侧要查包可见性、包与仓库链接的继承开关、组织 PAT 生存期策略、Actions 的 Manage Actions access,以及 K8s imagePullSecrets 里过期 token 的表现。
GHCR
Docker
容器镜像仓库
GitHub
认证
权限
运维
NAS 上跑 Motrix Server:无头部署、三端口与 /data 备份边界
综合
NAS 上跑 Motrix Server:无头部署、三端口与 /data 备份边界
2026-10-19 21:32:14
Motrix Server 在 NAS 上的无头 Docker 部署:8080/16801/16800 三个端点各自的职责、非 root 只读根文件系统、首次登录的 operator token、/data 必须备份的内容,以及 aria2 RPC 默认关闭的原因与打开方式。
自托管
Docker
NAS
下载工具
GHCR
用 BillionMail 自建邮局:两种装法、七个容器,以及上线前必须改掉的默认值
综合
用 BillionMail 自建邮局:两种装法、七个容器,以及上线前必须改掉的默认值
2026-10-19 21:31:21
BillionMail 自托管邮局部署笔记:一键脚本与 Docker Compose 两条路的差异、七个容器的职责与端口,以及 25 端口出站、PTR、SPF/DKIM/DMARC 这些装完才知道要补的外部条件,附默认口令与 docker.sock 的风险点。
邮件服务器
自托管
Docker
运维
批量 UPDATE 撑大 binlog cache:临时文件、1197 报错与排查顺序
编程
批量 UPDATE 撑大 binlog cache:临时文件、1197 报错与排查顺序
2026-10-19 21:06:02
单个事务的 binlog 事件超过 binlog_cache_size 后会落到 tmpdir 临时文件,磁盘悄悄被吃掉;超过 max_binlog_cache_size 还会报 1197。含状态变量比值读法、tmpdir 排查顺序、按主键分批与 binlog_row_image 的取舍。
MySQL
运维
binlog
事务
logrotate:copytruncate 与 create 怎么选,以及「轮转了但磁盘不释放」的排查顺序
综合
logrotate:copytruncate 与 create 怎么选,以及「轮转了但磁盘不释放」的排查顺序
2026-10-19 21:05:23
logrotate 的 create 与 copytruncate 本质是进程 fd 指向哪个 inode。讲清 Nginx/PHP-FPM 必须 reopen、copytruncate 的丢日志窗口与 IO 峰值、df 与 du 不一致时用 lsof +L1 定位、以及容器里为什么不该跑 logrotate。
Shell
运维
日志
Linux
Redis 8.4 XREADGROUP CLAIM:一条命令同时取空闲 pending 和新增条目
编程
Redis 8.4 XREADGROUP CLAIM:一条命令同时取空闲 pending 和新增条目
2026-10-19 21:04:19
Redis 8.4 给 XREADGROUP 加了 CLAIM min-idle-time,一次调用同时认领空闲 pending 与读取新增条目,替掉 XAUTOCLAIM 加 XREADGROUP 的两段式消费循环。含旧循环对照、阈值与重试预算的换算、XPENDING 监控与幂等边界。
Redis
消息队列
Streams
运维
Caddy 2.10 的 ECH 自动化:要编进 DNS 模块,升级后通配符证书还会改变签发行为
综合
Caddy 2.10 的 ECH 自动化:要编进 DNS 模块,升级后通配符证书还会改变签发行为
2026-10-19 21:03:36
Caddy 2.10 的 ECH 自动化需要把 DNS provider 模块编进二进制、指定指向本机的外层域名,且 CNAME 域名不会自动发布 ECH 记录。同时提醒通配符证书已成默认行为、libdns 1.0 与 Go 版本策略带来的升级阻塞。
Caddy
TLS
运维
反向代理
PHP 8.6 的 PASSWORD_BCRYPT_SHA256:先做 HMAC-SHA256,避开 bcrypt 的 72 字节截断
编程
PHP 8.6 的 PASSWORD_BCRYPT_SHA256:先做 HMAC-SHA256,避开 bcrypt 的 72 字节截断
2026-10-19 21:03:04
bcrypt 只读前 72 字节,长密码会被静默截断。PHP 8.6 新增 PASSWORD_BCRYPT_SHA256:先 HMAC-SHA256 再送 bcrypt,沿用 Passlib 方案。含生成/校验写法、列宽与 password_needs_rehash 迁移顺序、与旧 bcrypt 不兼容的边界。
PHP
密码哈希
bcrypt
安全
Go 1.28 的七个集合提案:Union 为什么要拆成两个函数,Get 和 At 又在争什么
编程
Go 1.28 的七个集合提案:Union 为什么要拆成两个函数,Get 和 At 又在争什么
2026-10-19 21:02:30
Go 集合工作组 Issue #80590 的七个提案:container/set、mapset、hash.Map/Set、tree.Map、heap/v2,以及 Go 1.27 已落地的 hash/maphash.Hasher。重点讲 Union/UnionWith 拆分、Get 与 At 的命名争议、DeleteFunc 必须进接口的复杂度原因。
Go
泛型
标准库
集合
Vite 8 升级笔记:Rolldown + Oxc 替换后真正会出问题的几处
代码
Vite 8 升级笔记:Rolldown + Oxc 替换后真正会出问题的几处
2026-10-19 21:01:58
Vite 8 把打包器换成 Rolldown、转换器换成 Oxc 后,CJS default 导入语义、对象形式 manualChunks、esbuild 变可选依赖、UMD 里 import.meta.url、默认浏览器目标都会变。含配置对照与两步迁移路径。
Vite
前端构建
Rolldown
前端工程化
Redis 8.4 给 SET 加了 IFEQ/IFDEQ:条件写可以替代手写 Lua 乐观锁
编程
Redis 8.4 给 SET 加了 IFEQ/IFDEQ:条件写可以替代手写 Lua 乐观锁
2026-10-19 21:01:23
Redis 8.4 的 SET 新增 IFEQ/IFNE/IFDEQ/IFDNE 条件写,配合 DIGEST、DELEX、MSETEX 就能替代手写 Lua 做乐观锁与条件批量。含命令示例、返回值语义、字节比较与集群限制,以及仍该用 Lua/WATCH 的场景。
Redis
乐观锁
CAS
Lua
缓存
Laravel 13.36:长驻 worker 跑过一个写任务后,后面一万个任务的读都压在主库
编程
Laravel 13.36:长驻 worker 跑过一个写任务后,后面一万个任务的读都压在主库
2026-10-19 20:02:53
Laravel 13.36 允许队列 worker 在任务之间清掉粘性数据库连接。讲清 sticky 为什么把长驻 worker 的读一直钉在主库、新开关 Worker::$flushStickyConnections 怎么开、打开后复制延迟与任务依赖的代价,以及判断要不要开的三个核对点。
Laravel
PHP
队列
MySQL
读写分离
支付宝 OpenAPI 40002 isv.invalid-signature:先别换密钥,先对比待签名串
代码
支付宝 OpenAPI 40002 isv.invalid-signature:先别换密钥,先对比待签名串
2026-10-19 09:02:34
支付宝 OpenAPI 报 40002 isv.invalid-signature 时,按 sub_code 分类后重点查待签名串:四步拼接规则、sign_type 保留与异步通知验签的差异、gateway 带 ?、charset 不一致导致中文乱码、URLEncode 时机、PKCS8 私钥、RSA/RSA2 混用、证书模式 app_cert_sn 参与签名,并给出用 openssl 在本地自证签名的命令。
支付
支付宝
RSA2
签名验签
接口对接
排障
Inertia v3 上线踩的 8 个坑:409 版本冲突、303 重定向与被 CDN 吃掉的 Vary 头
编程
Inertia v3 上线踩的 8 个坑:409 版本冲突、303 重定向与被 CDN 吃掉的 Vary 头
2026-10-19 00:09:59
从 Inertia v3 的 HTTP 协议切入,拆开 X-Inertia 头、page object、409 版本冲突、302→303 转换、Vary 缓存分桶、partial reload 惰性求值与 SSR 13714 探活。每个坑给现象、原因和 curl 验证方式,面向已用 Laravel + Vue 上线、正在排查整页刷新和缓存串味的工程师。
Inertia.js
Laravel
Vue
PHP
SPA
前端路由
幂等防重不止唯一索引:幂等键的四层拦截与三个失效点
编程
幂等防重不止唯一索引:幂等键的四层拦截与三个失效点
2026-10-19 00:04:20
同一个请求被处理两次,问题往往不在业务代码某一行,而在幂等键设计。这篇划清幂等只在写操作上成立,给出键的三种生成方式与粒度、网关/Redis 原子消费/MySQL 唯一索引/状态机条件更新的四层拦截顺序,以及「每次重试重生成键」「先查后写」「去重记录与业务不同事务、TTL 短于重试窗口」三个失效点,附 Go 的 1062 判断与并发验证方法。
幂等防重
幂等键
Redis
MySQL
重复提交
gh-actions-lock 0.2.0 升级后要处理的坑:粘性锁、更严的 --verify 与本地 action 迁移
编程
gh-actions-lock 0.2.0 升级后要处理的坑:粘性锁、更严的 --verify 与本地 action 迁移
2026-10-19 00:03:59
gh-actions-lock 0.2.0 升级排错笔记:锁文件 schema 变 v0.0.3、普通 run 改粘性锁、--rescan 移除、--verify 开始对未使用条目和未接入 workflow 报错、--verify-local 不再迁移 ./ 引用、--relock 与 --accept-moved 的分工、本地路径 action 跳过 onboarding 的路径解析坑,以及 allowlist 按 SHA 校验和 Dependabot 的 schema 兼容问题。
GitHubActions
actions-lock
CI
CD
供应链安全
lockfile
gh
PgDog v0.1.62:事务池复用连接时,SET/RESET 与 advisory lock 的会话状态怎么串味
编程
PgDog v0.1.62:事务池复用连接时,SET/RESET 与 advisory lock 的会话状态怎么串味
2026-10-19 00:03:42
PgDog v0.1.62 集中修了事务池下的会话状态泄漏:SET LOCAL ... TO DEFAULT 被当成会话级 SET、RESET 不恢复启动参数、ROLLBACK 撤销上一事务的 RESET、DISCARD ALL 命令标签错误打断 JDBC prepared statement、pg_try_advisory_lock 没拿到锁也 pin 连接。附最小复现 SQL、pgdog.toml 关键默认值与升级验证步骤。
PgDog
PostgreSQL
连接池
事务池
SET
advisory
lock
DISCARD
数据库代理
用 Beszel 搭一套轻量监控:hub + agent 的 Docker Compose 部署笔记
综合
用 Beszel 搭一套轻量监控:hub + agent 的 Docker Compose 部署笔记
2026-10-18 21:31:11
Beszel 用 Go 写的轻量监控:hub 基于 PocketBase,agent 采集宿主与 Docker 容器指标。含完整 docker-compose、KEY/TOKEN 回填与 unix socket 接法、告警通知渠道,以及 host 网络、SMART 权限、公网暴露的取舍。
服务器监控
Beszel
Docker
运维
自托管
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
332
下一页
共 332 页
到第
页
确定