自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 90 分钟写成 +5400 秒:时长计算页的毫秒偏移、四套 floor 与 145 行内核

把同一批偏移喂给补齐分钟的版本,30 秒会写「30 秒」、59 分 59 秒会写「0 小时 59 分」、1 小时 59 分会写「1 小时 59 分」、47 小时会写「1 天 23 小时 0 分」;时长文本先把四个字段折成总秒数再归一,所以 90 分钟写「1 小时 30 分」,负 90061 秒写「-1 天 1 小时 1 分 1 秒」,与页面的「90分」「-90061秒」形成直接对照。四个字段先各自解析,再统一折算成毫秒:天乘 86400、时乘 3600、分乘 60,加秒后整体乘 1000,并取整到毫秒。

2026-11-11 15:57:21 138

原创 涨 10% 要跌 9.0909% 才回本:百分比页的四个基准、两套精度与 156 行对照实现

虚构示例,但每个数都按真实页面的算法跑出来。采购单上有个价格 100 元,先涨到 110 元,再按「跌 10%」退回。财务写的是「回到原值」,实际算出来是 110 乘以 0.9 等于 99,比原价少 1 元。同一周还有两笔:这三件事看着都是「算错了」,拆开看却是三个不同的东西:第一件是基准选错(回本要除以现值,不是原值),第二件是浮点残差没有被吸附,第三件是显示层舍入把 1.005 截成了 1。这类小工具之所以容易翻车,就在于这三层还会互相污染:算式里显示的操作数走一套精度,结果值走另一套,用户把算式抄进

2026-11-11 15:53:22 498

原创 大模型推理加速该先量化还是先拉线程?我把 int8 精度和线程数在 CPU 上跑了一遍

先量化(体积和延迟双降,三成收益)、再调线程数(调到物理核一半封顶,别拉满)、最后才考虑批处理(只利好吞吐)。记住一句话——CPU 上小模型的大模型推理加速,瓶颈是内存带宽和调度开销,不是算力;凡是拿「翻倍」当卖点的说法,都该自己跑一遍再信。以各云厂商当期文档和定价为准,本文数据仅代表我本机环境与指定版本。

2026-11-11 10:06:11 308

原创 设计稿搬进浏览器就变色:CSS 渐变的角度、色标与序列化契约,附 231 行对照实现

色相、饱和度、亮度各留三位小数,alpha 留四位。

2026-11-10 15:51:30 246

原创 表单放过了一个录错的号码:7 对同权重位对调全骗过校验位,171 行实现钉死身份证校验的能力边界

某后台录入表单接了身份证校验,规则看起来无懈可击:18 位、末位 X 大写、校验位按国标算。上线后抽查出一条「校验通过」的记录,归属地却和用户填报的省份对不上。复盘发现录入员把号码中间两位敲反了——位置恰好权重相同,加权和纹丝不动,校验位自然还是对的。表单一路绿灯,错误就这样进了库。这不是校验算法写错了,而是校验算法的能力边界被误用了:校验位只能证伪,不能证实。它能告诉你「这个号码一定错」,永远不能告诉你「这个号码一定对」。我把身份证号码校验这一页的内联脚本抽出来跑在 Node 里,时钟钉死在 2026-1

2026-11-10 15:49:49 300

原创 ntp服务器配置命令怎么写才不踩坑?我把 Windows w32tm 的服务状态、注册表配置和三家云内网 NTP 都跑了一遍

环境声明:本文命令在 Windows 10 22H2(10.0.19045)+ Python 3.13.12 本机实测;Linux 侧的 chrony / ntpd 命令仅作对照,未在本机运行。三家云的 NTP 地址与配置以各官方文档为准,链接见「三家云的内网 NTP」一节。写 ntp服务器配置命令 的人,多半卡在开头:服务没起、注册表改了不生效、同步还报超时。常见的一个误解是「w32tm 配完就能同步」——其实服务停着的时候,所有查询都会直接报错。

2026-11-10 11:24:02 325

原创 把 8080 端口读成协议:URL 解析页的六份契约与 161 行可复制实现

工单只有一行:「这个工具把我们的内网地址解错了,运维照着屏幕上的字段拼健康检查,拼不出来。」贴过来的输入去掉协议头是 。把这一页的内联脚本原样抽出来跑在 Node 里(DOM 用桩件接住,剪贴板、复选框、生成结果都能读出来),屏幕上六个字段读作:协议 、主机名 、端口 、路径 、查询 、片段 。运维照着「主机名」拼,拿到一个破折号;照着「路径」拼,拿到 。一条只有「协议缺失」这一个小毛病的地址,被读成「有协议、无主机、路径是个数字目录」:输入 18 个字符,六个字段里三个和输入写的不是同一回事。(示例一律用

2026-11-09 16:12:53 174

原创 网站服务器怎么设置密码?策略拦路、哈希落盘和改了不生效,这三处坑我本机实跑了一遍

环境声明:以下命令与输出均来自本机 Windows 10(22H2,10.0.19045)+ Python 3.13.12。云上三家策略为官方文档口径,我未接控制台,仅核对文档。Linux 发行版的命令为通用文档依据,未在本机实跑,已注明。很多人以为「网站服务器怎么设置密码」就是敲一遍新口令、回车完事。我本机实跑下来,卡住人的往往不是设的过程,而是设完之后三件想不到的事:本地策略先把你拦在门外、你存进数据库的口令被拖库直接撬开、还有你改了登录口令后台却还能用老密码进。

2026-11-09 12:05:19 285

原创 windows服务器系统补丁怎么管才不背锅?我把注册表、组策略和云上运维程序 这三处开关对了一遍

我把 windows服务器系统补丁 的管控拆成了四份账本:本地注册表算一层,但不写就为空;组策略压过本地,域里一登录就覆盖;云上运维程序 走自己的通道,绕开系统开关;镜像基线发生在你拿到机器之前。排查顺序就一句话:先看Get-HotFix的硬证据,再顺注册表、组策略、云的运维程序、镜像基线一路对账回去。关掉一个按钮,从来不等于停更——这句话我替你验证过,是真的。

2026-11-09 12:01:26 328

原创 一枚令牌算出 58815 年到期:JWT 解码的六份契约与 122 行可复制实现

实现文件本身 135 行,多出来的 13 行里,6 行是六层各自的「层 N + 一句话契约」分节注释、3 行是模块说明、严格模式声明和一个空行、4 行是收尾的导出语句。实现的态度更硬:三段令牌一律写「本页只解码,不验签」,两段写「缺少签名段」,五段写「5 段是 JWE 结构,本地解不出载荷」并补一句「JWE 要先解密内层,不在本地验签」。契约的先后次序不是随便排的,它就是数据流过的顺序:先把「一段文本」变成「三段字符」,再把「三段字符」变成「三段字节」,再把字节变成文本和对象,最后才轮到时间和文案。

2026-11-06 10:25:17 413

原创 同一条 UUID v1,生成时是 2026 年、读回来是 5022 年:32 位算子改形时间戳后的 204 行修正实现

落库的场景,得先用上面第十节的清单验一遍——尤其是把一条生成的 v1 按字段布局读回去看年份对不对,这一步最能暴露"格式合法但时刻漂移"。v1 的正确做法不是"每条重摇节点",而是"墙上时钟只是起点、不是结论":同一毫秒不共用时间戳,检测到没往前走就把手工计数推一格,顺手把时钟序列也推一格;——它写的是"你选了 v1",不是"这条是 v1"。前 11 条针对实现,第 12 条针对页面缺陷的复现。不是时间戳的错,但在"复制—粘贴—落库"的流程里同样费时间,一并记下,因为它们是实测出来的、可复现的行为差异。

2026-11-06 10:22:29 562

原创 api接口怎么对接才稳?我把超时、重试和三家云签名这三道关跑了一遍

环境说明:本机 Windows 10 22H2 + Python 3.13.12,下文所有返回与报错均用标准库urllib直连一个本地 mock 服务(127.0.0.1:8811)跑出,不依赖外网;三家云的签名结论来自各自官方文档,未逐项实跑签名计算。你接过的接口大概分三类:第三方支付、云厂商的 OpenAPI、公司内部服务。新手常以为 api接口怎么对接 就是把 URL 拼好、参数塞进去、等返回。我踩过的坑告诉我,难的地方不在"调通一次",而在"生产环境里它隔三差五以你没想过的方式挂掉"。

2026-11-06 09:51:01 336

原创 10 月 3 日加 30 天,Date 给你 11 月 1 日:工作日排期的 4 类错位与 401,767 天整数差分

「这个需求 30 个自然日内交付」「国庆假期后第 5 个工作日上线」「这条记录距今多少个工作日」——三句话对应三段代码,而这三段代码在本地全绿。上线第一周没事,第二周有同事换了台机器开始差一天;再往后,是加班天数少算一天、工资条对不上。我自己踩过的那次是这样:取 10 月 3 日的本地午夜——,或等价的 (带时刻、不带偏移)——,在纽约的机器上得到 ,本地日期是 11 月 1 日,而日历上 10 月 3 日往后 30 天是 11 月 2 日。函数不报错, 是个正常的数字, 检查也过得去。同一行代码在上海就是

2026-11-05 15:30:21 449

原创 一行正则删标签,顺手删掉了代码里的 8 个字符:HTML 词法的 6 个必错点

需求看起来很小的那种:把 CMS 导出的 HTML 转成纯文本,或者把富文本里多余的标签洗掉再入库。搜一下就有答案——, 一次,收工。测试用例是 ,跑出来 ,通过。问题出在几周之后。有人发现一段嵌在文章里的 JS 代码变成了 ——少了 8 个字符,而且少得很有规律,看起来像人写的。另一处是属性里带 的下载链接,正文里多出 三个字符。这些都不会报错:正则永远匹配成功,函数永远返回字符串,长度只变小不报警。这篇文章把这一件事写完: 后面到底有几种东西、为什么一行正则覆盖不住、以及一台 58 行的状态机怎么把

2026-11-05 15:22:39 408

原创 embedding模型api怎么调?我把阿里云、腾讯云、华为云三家接口和本地推理的坑都踩了一遍

做语义检索或者给知识库喂向量的时候,头一道坎往往不是模型效果,而是怎么把一句话变成一串能算距离的数字。我这两周把 embedding模型api 在三家云上的调用方式,以及把模型拉到本地自己跑的完整链路都摸了一遍,发现云端和本地各有各的坑,而且本地推理的坑更隐蔽。这篇内容把我实测出来的五个反直觉点拆开讲,省得你重复踩。

2026-11-05 10:00:16 318

原创 粘 15 行清单勾了去重,出来只剩 10 行:批量提文件名的账要这么对

手上有一份备份清单,15 行绝对路径,想拿出去掉后缀的文件名列表。全选粘进文本框、取消「包含扩展名」、勾上「去重」,出来 10 行。少掉的 5 行没有任何提示——不报错、不置灰、不写「第 2 行已合并」。要是这批名字接下来要拿去生成建表语句或者对账,缺 5 个就是缺 5 个。这类「批量提文件名」的脚本,逻辑总共十来行,但吞行的通道有四条,而且它们互相耦合:削不削后缀决定去重的键长什么样,去重的键又决定哪些行算重复。这篇文章把这一件事写透:先立起四道减法的账,再量清「键」的口径,最后给一份逐行留痕的实现。所有

2026-11-04 14:01:07 303

原创 正好 100,000,000 字节:把整数目标反解成单位框里的小数,要写几位

手上有个很小的需求:接口那边把上传限额写成100000000字节,测试要造一个的文件卡在线上。找一个「按大小生成文件」的页面,单位框只有 B、KB、MB、GB 四档,输入100选 MB,屏幕立刻告诉我——多了 4,857,600 字节。换成 95 MB 又少一截。2^532^k10^kfloorroundceiltoFixed(2)下面逐条给实测、反解方法,以及三段能直接抄进项目的代码(精确反解、舍入方向自选、显示进位修正),末尾附 13 条验收清单。

2026-11-04 13:58:28 653

原创 模型微调显存不足怎么办?我把权重、优化器和激活值这三笔显存账都算了一遍

模型微调显存不足的根源,是优化器那 52GB 常被人漏算进预算。先分清全量还是高效微调,账算对了一半,后面的省显存招数才有意义。权重 13GB → 梯度 13GB → 优化器 52GB,全量微调 7B 参数账约 78GB,加激活逼近 100GB,24G/40G 卡必爆;换 8-bit 优化器省 39GB、开梯度检查点砍激活、上 LoRA/QLoRA 把基座压成 4-bit,单卡 24GB 就能微调 7B。先分清全量还是高效微调,再照着这几笔账逐项压,比盲目调 batch size 管用得多。

2026-11-04 10:36:08 233

原创 少一行分隔符,整张表就变回文字:Markdown 解析器的四种静默降级

一份文档贴进转换框,标题、列表、代码块都正常,只有那张表格没了——两行竖线原文整齐地待在段落里,页面一声没吭。这不是 bug,是解析器的选择。绝大多数自研 Markdown 实现(包括纯前端那种几百行的)遇到结构不完整时不会抛异常,只会「降级」:把这块当普通段落输出。降级本身常常是对的策略,问题在于它和「用户写错了」在界面上长得一模一样。拿一份解析器跑了 58 组畸形输入,只有 4 组产出提示,其余全部静默。这篇把这 58 组里的行为归成四种降级姿势,说清每一处的判据,最后给一个转换前用的结构自检函数。

2026-11-03 14:44:32 209

原创 16 字节转成 Base64 涨了 50%,4 MB 只涨 33.3%:这笔账该怎么算

要给页面内联一个小图标,或者往 JSON 里塞一段二进制,第一反应通常是「Base64 会胖三分之一」。但把 16 字节的文件丢进去,编码后 24 字节,涨的是 50%;70 字节涨 37.1%;到 4 MB 时才收敛到 33.3%。同一件事,小文件和大文件的数字差得很远。原因是「胖三分之一」说的是比值(编码后是原来的 4/3),而实际用来做预算的那个百分比通常是增量。再加上前缀、补位符、1024 进制显示三层,一份 Base64 的真实体积要分四笔账来算。

2026-11-03 14:41:18 448

原创 网站服务器失去响应怎么解决?我把连接超时和读超时这两段计时拆开跑了一遍

实测环境:Windows 10 22H2 + curl 8.x + Python 3.13.12(CPython)。下文计时与报错均为本机真实回显,未做改写;云厂商超时默认值以各自官方文档为准,落地前请核对当期版本。浏览器转圈、接口挂起、前端弹窗与网关甩出 504,常被一股脑归成服务器挂了。但网站服务器失去响应怎么解决,先做的不是重启,而是分清你遇到的是“连不上”还是“连上了不回”。

2026-11-03 10:02:25 271

原创 页面说省了 57.9%,文件实际小了 71.4%:压缩率按字符还是按字节算

把一段带中文注释的代码粘进 JS 压缩框,取消「保留注释」,统计条显示-57.9%。把结果复制出来存成文件,再从 56 字节变成 16 字节——按字节算是 71.4%。两个数字都不算错。页面算的是 UTF-16 代码单元数,文件按 UTF-8 保存时算的是字节数。中文在这两套口径里不是同一个重量:一个汉字在 JS 的.length里算 1,在 UTF-8 里占 3 字节。输入里的中文越多、被删掉的部分越接近纯 ASCII,两个百分比差得越远。

2026-11-02 11:08:59 205

原创 自己生成的 EAN-13,上传后为什么一个字符都读不出来?

页面对失败的处理比解码链更短。情况用户看到代码里的原因浏览器没有不支持面板,附 Chrome 83+ / Edge 83+ 提示环境判定为假,直接引擎返回空数组「未识别到条形码内容,请确保图片清晰且包含完整的条形码」第一轮 0 个码,第二轮仍 0 个引擎抛异常同一句「未识别到条形码内容」两层catch都调图片本身解码失败一直停在「正在识别条形码…」,没有任何提示只挂了onload,没有onerror前两条还能理解,第三条和第四条就是工程问题了。

2026-11-02 10:49:51 257

原创 embedding模型是什么?我把向量、维度和余弦相似度这几件事用 Python 跑了一遍

环境说明:本文向量运算在 Windows 10 + Python 3.13 上实跑,用来把「向量」「维度」「余弦」这三件事讲清楚;阿里云、腾讯云、华为云的向量接口为官方文档依据,我没有逐一调用,只对比请求与响应的形状。向量由模型产出,我用手造向量演示算法本身,结论不依赖任何一家的具体模型。你搜进来,多半是想做语义搜索、去重或者知识库召回。反直觉的一点是:两句话算出来的「像不像」,不是看字面重叠了几个词,而是看它们落在高维空间里的方向接不接近。

2026-11-02 10:32:58 264

原创 对比两份 8000 行的配置,为什么先炸的是内存?

运维改完两台机器的配置文件,想确认差异。两份文件各 8000 行,粘进对比工具,浏览器转了一会儿出了结果——但同一份逻辑放进 CI 的 512MB 容器里跑,进程直接exit=134,日志只有一行。代码里明明包了try/catch,什么都没 catch 到。这不是「文本太大」四个字能解释的。2000 行能跑、4000 行也能跑,为什么偏偏在 8000 行炸?更奇怪的是,3000 行只改 5 行,实测反而比 300 行改 200 行慢 186 倍。要讲清楚这两件事,得先看逐行对比用的是什么算法。

2026-10-30 11:18:40 656

原创 代码高亮看着没问题,复制出来却少了几个字符

c

2026-10-30 11:14:26 335

原创 linux防火墙放行端口怎么配才不漏?iptables、firewalld、ufw 与云平台安全组,我按四道关拆开跑了一遍

linux防火墙放行端口 照着四道关从外往里查:安全组 → 系统防火墙 → 服务绑定 → 网络栈;规则看顺序、绑定看 LocalAddress、安全组只能回控制台改。我把绑定地址陷阱与规则优先级都在本机实跑确认了,剩下的就是照着清单逐关对一遍。安全组、防火墙的具体默认值以各家官网当期文档为准,本文引用页面请以上述链接实时内容为准。

2026-10-30 10:58:36 260

原创 两步验证密钥改一个字符,6 位验证码为什么可能完全不变?

帮同事迁移两步验证的时候遇到过一件怪事:Base32 密钥是手抄的,抄错了最后一个字符,本以为登录必挂,结果验证码居然还是对的——新旧两个"不同"的密钥,算出了一模一样的 6 位码。这不是运气好,也不是巧合。从密钥到验证码是一条三层流水线,每一层都在主动丢信息。把这三层看懂,你就知道哪些"抄错"会被原谅、哪些会直接报错、哪些会静默给出一个错码——最后一种才是真正危险的。

2026-10-29 13:53:18 189

原创 手抄的摩斯电码为什么解不出来?点与划远不止两种写法

PARIS 标准的时序表是:点 1、划 3、符内间隔 1、字母间隔 3、词间隔 7。实现词间隔有个容易算错的细节。return;} // 词分隔符只加 4d * 3 : d;// 每个符号后面挂 1});t += d * 2;// 每个字母后面再挂 2});遇到时只加 d×4,但前一个字母收尾时已经累计了"最后符号的间隔 1 + 字母收尾 2"共 3 个单位,4 + 3 合成标准的词间隔 7。如果你新写一个解码器、按"词间隔 = 7"单独去加 7,整段音频就会比标准慢 3 个单位。

2026-10-29 13:43:21 243

原创 linux服务器传输限速怎么配置?我把应用层、系统层和网关层的限速闸门都跑了一遍

环境说明:本文命令以 Linux 为准。其中令牌桶限速、单位换算、三层聚合三处为我在 Windows 10 + Python 3.13.12 本机实测;系统层 tc 与云侧带宽为官方文档口径(已逐处标注)。截至 2026-10,结论适用于当前主流发行版与三家公有云。聊 linux服务器传输限速怎么配置 之前,我遇到过两类诉求。一类只是不想让 scp 把带宽吃满,一条命令就能解决;另一类是要给整台机器出网卡一个硬上限,得动系统层甚至云侧,影响的是全部进程。

2026-10-29 10:08:10 221

原创 为什么 851 字节的图片,压缩后反而变成 1284 字节?

上周帮同事看一个头像上传的"压缩"功能,测试同学报了两个 bug:一张只有 851 字节的小图,压缩后变成 1284 字节;另一个 PNG 格式的 logo,压缩完透明背景变成了黑色。前端的"图片压缩"看起来人人会写——一行的事——但这两个现象背后,是三个经常被忽略的编码事实。把这三个事实讲清楚,这类"越压越大""透明消失"的问题就能一次性根治。

2026-10-28 11:06:42 145

原创 为什么 1 米换算成纳米,程序里存的是 999999999.9999999?

系数表里的数字必须从权威定义原样抄录,而不是抄"计算出来的近似值"。单位系数(对基准)来源英寸0.0254 米国际协议精确定义磅453.59237 克定义值金衡盎司31.1034768 克贵金属交易用常衡盎司28.349523125 克普通物品用亩2000 / 3 平方米1 亩 = 60 平方丈坪400 / 121 平方米日制面积单位注意最后两行:系数在源码里写的是表达式2000 / 3400 / 121,而不是手打的。

2026-10-28 10:39:06 51

原创 大模型推理加速到底加速在哪?我把批处理、KV cache 和冷启动算了一遍

大模型推理加速不是玄学,落回三笔账:解码受显存带宽限制(单请求上限约 43 tok/s 量级)、吞吐靠批处理在 KV cache 预算内喂满、冷启动靠把模型文件缓存到内存消掉。先分清你卡在哪一环,再决定是加带宽、加并发还是开缓存——别一慢就想着换卡。文中规格与文档链接以各厂商当期公示为准;实测数字为推算量级,仅供定位瓶颈参考。

2026-10-28 10:09:11 141

原创 为什么你的计算器把 1,000 算成了 1?

写过一个内部小工具,算排班周期和通分用的最小公倍数。测试同事输入了——带千分位逗号的写法——页面安静地显示 LCM = 2。没有报错,没有警告,一个完全错误的结果就这样交付了。复盘这个 bug 时发现,一个"只算两数乘除"的小函数,背后至少压着三件容易被忽略的事:输入解析的静默丢弃、先乘后除的精度陷阱、辗转相除的最坏情况。这篇文章把这三件事一次讲透。

2026-10-27 10:47:45 244

原创 为什么生成的 BAT 脚本一运行,中文目录全是乱码?

运维同事接到一个活:客户发来 50 个课程目录名,要在本地 Windows 和 Linux 服务器上各建一份同样的目录结构。他写了份 BAT 在 Windows 双击运行——目录是建出来了,中文全成乱码,项目/文档变成一串问号加生僻字;改到 Linux 上跑 Shell 又发现重跑一遍就报错。这篇文章把"把一批目录名变成三平台都能正确跑的脚本"这一件事一次做对,共三关:编码、幂等、补零。

2026-10-27 09:45:39 323

原创 怎么远程连接linux服务器?我把 ssh 配置的三层优先级和密钥登录跑了一遍

环境声明:本文命令在 Windows 10 22H2 自带的 OpenSSH_10.3p1(OpenSSL 3.5.7)与本机 Python 3.13.12 上实跑,ssh 配置优先级用ssh -G把真正生效的配置打印出来验证,不是凭记忆写的。你搜「怎么远程连接linux服务器」进来,多半是卡在两件事上:要么之后一直转圈,要么明明改了端口和密钥,连上去却发现还是走的老配置。我前两周帮同事排一个"换了端口还连 22"的怪事,查下来发现是命令行参数把配置文件悄悄盖掉了。

2026-10-27 09:36:44 323

原创 为什么你写的“取文件后缀“函数总有 bug?

最常见的错误写法是。输入split(‘.’).pop() 的结果应该是gz,碰巧对.gitignoregitignore无后缀(点开头是隐藏文件)file.""空后缀,不算LICENSE无后缀(文件名本体被当成了后缀)""无后缀..""无后缀在无点、点开头、点结尾三种情况下全军覆没。正确做法是先找最后一个点// dot === -1 无点;dot === 0 点开头(.gitignore、.profile)dot <= 0-1是没有点,0是点开头。剩下的点结尾(file...

2026-10-26 10:15:52 427

原创 为什么你的代码把 Edge 认成 Chrome?

所以解析 UA 第一条纪律就是:不能只看开头的 Mozilla,也不能只。

2026-10-26 10:06:24 447

原创 服务器迁移到底在迁什么?文件、配置和数据一致性三件事,我算了一遍停机窗口

我一般会在低峰期先跑两三轮增量把底打厚,割接时只付最后一段全量的代价。

2026-10-26 09:53:28 150

原创 为什么导出的 CSV 在 Excel 里错位又乱码?

事情的起点很具体:爬虫抓到一批 JSON 数据,要交给运营同学在 Excel 里看,同时还要喂给一个按 CSV 导入的下游系统。第一版我用拼了份 CSV,自测看着没问题就发了。半小时后被打回:Excel 里行错位、中文乱码,嵌套字段显示成。三个毛病,根源各不相同,但都指向同一件事——CSV 从来不是"拿逗号拼一下"那么简单。这篇文章把这件小事一次做对:三条规则、三个坑、一份能直接复用的序列化函数。

2026-10-23 10:35:47 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除