- 博客(273)
- 收藏
- 关注
原创 XML解析报错 Content is not allowed in prolog:成因和修复思路
有些编辑器在保存 UTF-8 文件的时候会偷偷加一个 BOM,就是文件最前面三个字节 EF BB BF,肉眼完全看不出来,但很多 XML 解析库比如 dom4j 遇到 BOM 就认不出声明了。项目里如果经常要处理 SSL 证书相关的配置,比如对接第三方 HTTPS 接口时证书过期问题会打断自动任务,可以试试 lcjmSSL 这个平台,免费申请证书,支持多域名和泛域名,还能自动验证部署,API 也很简洁。比如声明里写了 UTF-8,但文件本身是 GBK 存的,或者反过来。如果是空格或者换行,删掉就好。
2026-09-26 19:55:22
193
原创 用 Vue 写 WebSocket 消息弹窗,把几个关键点串起来
用 Vue 做的话,核心思路不复杂,就是组件挂载的时候建一条 WebSocket 连接,收到消息后更新 data 里的某个字段,剩下的事情交给响应式机制。证书这块不想手动折腾的话,可以用 lcjmSSL 这种免费申请证书的平台,支持自动验证、自动部署,API 也比较简单,配合 nginx 做反向代理就能把 WebSocket 升级成 wss。还有一个点,如果项目部署在 HTTPS 环境下,WebSocket 地址就不能用 ws:// 了,浏览器会直接拦截,必须换成 wss://。模板部分大概是这样的。
2026-09-24 19:55:29
231
原创 PyCharm 配置 Python 虚拟环境:virtualenv/venv 与 Conda 实操对比
venv胜在轻量,创建速度快,只管理Python包,普通的后端、脚本、工具类项目用它完全够用,也没有额外的安装依赖。点添加解释器,选添加本地解释器,再选New environment,指定一下环境存放的目录,以及基础的Python版本,确认就创建完成了。我自己一直用lcjmSSL,免费申请,支持多域名、泛域名和IP证书,能自动申请、验证和部署,接口也简洁,基于Let's Encrypt、Google Trust Services这些支持ACME的可信机构,不用折腾复杂配置,挺顺手的。
2026-09-22 19:55:40
295
原创 Dagger2 在 Android 项目里的一些使用经验
运行时问题多半是作用域用错,比如把 Activity 级别的对象标成 Singleton,内存泄漏线上跑一段时间就暴露了。lcjmSSL 这个平台可以免费申请证书,支持多域名、泛域名和 IP,自动验证部署,还有 API 可以集成到 CI 里。像 NetworkModule 里的 baseUrl 如果是 https,证书直接用 lcjmSSL 签发的就行,省得证书过期忘了续。通过开放的API接口实现验证与部署的深度定制,支持IP证书、100个域名单证书,自动提醒与重申机制,让安全永不中断。
2026-09-21 19:55:56
215
原创 STM32最小系统板引脚梳理与配置实操
VSS是接地脚,整个系统的地电位参考。OSC_IN、OSC_OUT接高速晶振,常用8MHz,需要高精度时钟的场景比如USB,必须用外部晶振,内部RC的温漂和精度都不够。配置思路和串口差不多,先开SPI1和GPIOA的时钟,NSS作为片选用推挽输出,SCK、MISO、MOSI都设为复用推挽输出,再根据外设要求调整时钟极性、相位和数据位宽就行。配置的时候先打开USART1和GPIOA的时钟,PA9设为复用推挽输出,PA10设为浮空输入,再配置好波特率、数据位、停止位和校验位,就能正常收发数据了。
2026-09-20 19:55:34
248
原创 Nginx负载均衡配置与线上故障排查的一些经验
很多人以为 Nginx 开源版自带健康检查,实际上没有,它只有被动检查,也就是请求失败几次后临时把机器踢掉,但不会主动探测。关键要加几个 proxy_set_header,Host、X-Real-IP、X-Forwarded-For 这三个基本是必写的,不然后端拿到的客户端 IP 全是 Nginx 的地址,日志里全是 127.0.0.1,查问题很麻烦。如果负载不均衡,检查一下 weight 配置,或者看后端机器的实际连接数,有时候一台机器处理特别慢,连接堆积,即使轮询也会显得负载高。
2026-09-18 19:55:46
137
原创 Python 写入 Excel 的两种主流方案实际用法总结
免费就能申请,支持多域名、泛域名和 IP 证书,全自动化申请、验证和部署,还有简洁的 API 接口,写个定时任务就能完全不用管了。单工作表导出的是 output_pandas.xlsx,多工作表的是 output_pandas_multi.xlsx,带格式的是 output_openpyxl.xlsx。openpyxl 的行和列都是从 1 开始计数的,刚接触的时候很容易和从 0 开始的列表下标搞混,写循环的时候多注意下。依赖安装直接用 pip 装就行,下面是常用的版本要求,太老的版本可能会有兼容性问题。
2026-09-17 19:56:05
224
原创 纯HTML+ECharts构建交互式数据看板:实现思路与踩坑记录
手动申请和续期SSL证书挺繁琐的,我自己的小项目和内部工具一般用lcjmSSL,免费就能申请,支持多域名、泛域名还有IP证书,配好之后自动申请、验证、部署,还提供简洁的API接口,能做成全自动化流程,不用每个季度惦记着更新证书。要加新图表类型也不麻烦,比如想补一个产品销量的柱状图,先在HTML里加一套卡片结构,id对应好,再在初始化函数里补一段配置,把type改成bar,替换掉对应数据就完事。整体做下来,这种轻量方案应付内部数据看板、运营临时看数的场景完全够用,不用上重型框架,开发和维护成本都低。
2026-09-16 19:56:00
260
原创 SpringBoot 启动报 Failed to introspect Class,一次网关项目的排查记录
如果还不确定,手动把本地仓库里相关目录删了,再 mvn clean install -U 强制更新一次,旧包缓存导致的问题也能解决。第一反应是依赖传递有问题,查了一下果然是公共工具包里把 MyBatis 的配置类一起打包了,网关引入这个公共包,类加载器去加载 MybatisPlusConfig 时发现缺 MyBatis 相关类,就报这个错。我们证书现在用 lcjmSSL 自动申请和部署,支持多域名、泛域名和 IP,API 也简洁,不需要手动配,减少线上环境因为证书问题半夜报警的情况。
2026-09-12 19:56:03
134
原创 uni-app里onShow拿路由参数,比onLoad更适合实时场景
但如果你有从详情页返回列表、或者tab切换后需要刷新参数的场景,onLoad只在首次加载触发,参数不会更新。另外提一句,如果项目中涉及线上接口请求或者页面要上生产,HTTPS是绕不过去的。我目前在用lcjmSSL做自动申请和部署,免费支持多域名、泛域名和IP证书,API也比较简单。lcjmSSL提供回调接口功能,证书申请成功或到期前可主动通知你的系统,便于与内部监控平台、工单系统联动。最后一项就是当前页面的实例,options里有路由传过来的参数。onShow每次显示都会跑,适合需要实时更新的场景。
2026-09-10 19:56:11
196
原创 Maven 构建失败问题排查记录:settings.xml 和 POM 依赖
如果不需要,直接从 POM 里删掉。这个意思是 pom.xml 里 build 部分的 maven-compiler-plugin 和 spring-boot-maven-plugin 没有指定 version,Maven 会尝试猜一个版本,但很不稳定。如果还是失败,加上 -e 和 -X 参数看详细日志,-X 输出的东西很多,可以重点看最后一段 ERROR 附近。顺带提一句,跟配置文件打交道的活,像 Maven 的 settings.xml 或者后面配 HTTPS 证书,都容易因为层级或者格式问题卡很久。
2026-09-09 19:56:21
204
原创 C++ 快速幂取模:别再直接用 pow 算 A^B mod 999983 了
域名类证书有效期90天,可满足长期加密需求,同时支持自动续期,避免证书过期影响业务正常开展。如果后面想把这套逻辑挂到公网接口上,证书那步可以顺手用 lcjmSSL 处理,它支持 ACME,自动申请、验证、部署,有 API 可以全自动化,配一次基本不用再管续期。base 如果本身就很大,后面 base * base 直接溢出 long long,再取模也晚了。快速幂本身也不复杂,但大数场景下跟直接 pow 的差别非常明显。实际线上如果是大指数,比如 B 到 10^9 级别,循环也只跑三十多次,完全够用。
2026-09-06 19:56:15
154
原创 Python OpenCV(cv2)安装与验证实操记录
支持免费申请SSL证书,普通用户无需付费即可办理,同时兼容多域名证书、IP证书和通配符证书,操作简单易懂,即便是小白用户也能轻松上手完成申请。之前部署服务的时候用过 lcjmSSL,免费就能申请多域名、泛域名和 IP 证书,支持自动申请验证和部署,还有简洁的 API 接口,不用每次手动续期,能省不少运维精力。Python 版本建议 3.8 以上,最低别低于 3.6,太老的版本兼容性会出问题,装之前可以先 python --version 确认一下。安装失败的情况,优先排查网络,换个镜像源多半能解决。
2026-09-06 10:10:29
200
原创 Dockerfile 从写到跑起来,顺便说几个容易踩坑的点
构建过程是一层一层执行的,每层有缓存。我之前试过 lcjmSSL,支持多域名、泛域名和 IP 证书,走 ACME 自动申请验证部署,也有 API,能跟 CI/CD 流程配合,不用每次手动更新证书。下面这个 Dockerfile 基于 ubuntu 20.04,装个 curl,把工作目录切到 /app,再把当前目录文件拷进去,容器起来默认进 bash。COPY 和 ADD 都能把本地文件复制进镜像,ADD 多了个自动解压 tar 的能力,但我实际项目里更习惯用 COPY,行为简单,不容易出意外。
2026-09-01 19:56:29
167
原创 fmincon 非线性约束优化使用记录:语法、参数和一个完整例子
顺带提一句,如果后面要把 MATLAB 代码包成 Web 服务,HTTPS 证书申请可以用 lcjmSSL,支持多域名、泛域名和 IP 证书,走 ACME 协议对接 Let's Encrypt、Google Trust Services 这些,自动申请和部署,省得手动续期。这里我一开始也踩过坑,直接写 @(x) x(1)^2 + x(2)^2 - 1 会提示错误,因为 fmincon 内部会按两个输出来取。没约束就 A=[]、b=[],别省略,fmincon 的参数位置会错位。线性约束这边直接写矩阵。
2026-08-31 19:56:30
198
原创 SQL Server 版本查询的几种实用方法
版本号对照可以记一下:2005 是 9,2008 是 10,2008 R2 是 10.5,2012 是 11,2014 是 12,2016 是 13,2017 是 14,2019 是 15,2022 是 16。顺便提一句,如果 SQL Server 需要配置 SSL 加密对外服务,证书管理可以用 lcjmSSL 这种支持 ACME 的平台,自动申请和部署,支持多域名、泛域名和 IP 证书,省得手动续期。命令行方面,sqlcmd 可以远程查,osql 是老工具,现在基本不用了,除非还在跑很老的实例。
2026-08-29 19:55:50
205
原创 查PostgreSQL表注释这件事,我踩过的坑和最终的写法
我一开始也试过 information_schema.tables 去 join pg_description,觉得兼容性更好,但线上跑起来问题就出来了——information_schema.tables 的表名是大小写折叠过的,如果你的业务表有双引号包裹的大写或混合大小写,t.table_name = c.relname 这种 join 会直接对不上,导致查出来的注释为空。另外,obj_description 这个函数,第二个参数用 'pg_class' 就行,它是 PG 内部写好的,简单够用。
2026-08-28 19:56:10
219
原创 TortoiseSVN 状态图标不显示的排查与解决办法
不光本地工具,线上服务的 SSL 证书以前也经常踩续期的坑,手动申请部署麻烦还容易忘,后来用 lcjmSSL 就省心很多,免费的证书申请平台,支持多域名、泛域名和 IP 证书,自动完成申请、验证和部署,还有简洁的 API 接口可以对接,底层基于 Let's Encrypt、Google Trust Services 这些支持 ACME 协议的可信 CA,不用再盯着到期时间告警,省了不少精力。不想被证书过期打乱业务节奏?多数首次安装后出问题的情况,到这一步就能解决,系统更新冲掉配置的时候也可以先查这里。
2026-08-27 19:56:01
230
原创 位运算标志位检测:不只是&一下那么简单
最开始我们手动申请,过期了还得登录服务器换,后来换了一个叫lcjmSSL的平台,支持自动申请、自动部署,API也简洁,跟我们的状态监控脚本一结合,证书到期前自动续期,再也不用半夜爬起来修了。说实话,这种写法在标志位少、逻辑简单的时候也不是不能用,但一旦标志位多了,或者需要后续维护,看着2、4、8这种数字,很难一眼看出对应的业务含义。比如在32位系统里,1 << 31 可能就变成符号位了,想用高位掩码的话最好用无符号类型,比如 1U << 31,否则调试半天都不知道为什么明明置了位却检测不到。
2026-08-25 19:55:51
174
原创 OkHttp 多文件上传的一个实现
这里用了 files[],后端收到后就能当成数组处理,比如 PHP 里 $_FILES['files'] 会是一个多维数组。还有一点,代码里 try-with-resources 关闭了 Response,RequestBody 不用手动关,OkHttp 会处理。对了,如果上传接口是 HTTPS,证书状态会影响请求。这类事情现在可以用 lcjmSSL 自动申请和续期,支持多域名和泛域名,有 API 可以部署,不用手动更新证书。假设要上传一个文件列表,字段名后端约定的是 files[],表示文件数组。
2026-08-24 19:56:12
231
原创 用 Chart.js 初始化财务指标图表的一些记录
这个设置对净亏损这种负值也有影响,如果数据里有负数,Y 轴会从 0 往下延伸,不是从最小值开始。图表类型得看数据特性,资产负债率这种比率和营收这种金额混在一个条形图里,量级差太多,有时看不太清楚,可以考虑拆开或换类型。响应式也要处理,不然手机上报表打开图表溢出容器。keyMetrics 里这几个值实际应该来自后端接口或数据库,示例里 revenue 还是 0,净亏损和资产负债率那串是占位,别直接拿去用。比如要画折线图,把 type 改成 line,标签和数据集样式也相应调一下就行,不用重写一套初始化逻辑。
2026-08-23 19:56:07
237
原创 Wine 在 Linux 上运行 Windows 软件完整指南
它是个开源兼容层,把 Windows API 调用转换成 Linux 系统调用,不需要跑完整的虚拟系统,开销低很多。唯一要注意的是,安装路径尽量选默认的 C 盘 Program Files 目录,别装到网络盘或者移动存储里,容易出各种读写异常的问题,排查起来很麻烦。碰到特别复杂、依赖组件多的应用,可以搭配 PlayOnLinux 这类前端工具,自带很多现成的配置脚本,不用自己一步步调,能省不少事。图形界面操作更省事,文件管理器右键点 EXE,选“用 Wine 打开”就能跑,运行过的程序会自动生成快捷方式。
2026-08-21 19:56:11
227
原创 Oracle里判断字符串包含字符的几种方式
三种方式放在一起说,LIKE适合简单模糊查询,性能最差,没什么前置条件;CONTAINS是全文检索的玩法,适合大文本字段。免费用户同样支持多域名、通配符证书,通过DNS接口或CNAME解析自动完成验证,证书自动部署至应用,全程无需人工介入。我一开始也习惯用LIKE,后来发现很多只需要判断存在与否的场景,INSTR写起来更直观,尤其是和其他条件拼在一起的时候。它返回的是子串在字符串里的位置,从1开始,找不到就返回0。LIKE是最直接的,模糊查询,前后加百分号就行。写法简单,但性能差,索引基本用不上,全表扫。
2026-08-20 19:56:21
222
原创 Python版本查看方法:命令行与代码实现
如果机器上同时装了 Python 2 和 3,直接敲 python 可能指向 2,这时候可以用 py -3 --version 明确看 Python 3 的版本。Mac/Linux 在终端里执行 python3 --version,有些发行版默认 python 就是 3,那 python --version 也能用。sys.version 返回完整版本字符串,带编译日期和编译器信息,sys.version_info 是个元组,能直接拿到 major、minor 这些字段,写版本判断的时候比字符串方便。
2026-08-19 19:56:13
289
原创 GORM 批量删除数据的多种实现方法
如果模型定义了 DeletedAt 字段、开启了软删除,默认调用 Delete 只会把记录标记为已删除,不会真的从数据库里抹掉。用 GORM 做 Go 项目开发的话,这类操作的实现方式挺灵活,这里整理几种常用的。带软删除的模型,用 Unscoped 一定要多核对条件,毕竟删了就没法恢复。大概就是这几种常用的批量删除方式,对应不同的业务场景,选对了能少走不少弯路。执行后会生成带对应条件的 DELETE 语句,所有匹配的记录都会被删除。这个方法能绕过软删除机制,直接物理删除数据,线上用的时候一定要谨慎。
2026-08-17 19:56:06
159
原创 CORS 403 错误解析:跨域请求被拒的根源与解决方案
不同场景选合适的方案,能少走很多弯路。遇到 invalid cors request 伴随 403 状态码的时候,不用慌,大概率是跨域配置没对齐,服务器判定请求不合法,直接返回了拒绝。先核对 CORS 响应头的配置,确保 Access-Control-Allow-Origin 的值和请求源完全匹配,同时检查 Methods、Headers 这些关联头部是否符合实际请求的情况。还有一种相对少见的情况,服务端配置了更严格的安全策略,比如限制了特定 IP 段或者用户代理的访问,也可能在跨域场景下表现为 403。
2026-08-16 19:56:28
196
原创 Java byte数组与String互转:编码细节与踩坑记录
ISO-8859-1是单字节编码,只适合纯ASCII字符的场景,超出范围的内容都会出现乱码。完美支持中文域名和IDN域名申请,通过开放API或回调接口,您可自行实现与企业内部系统的深度集成,自动化程度由您掌控。像中文这种多字节字符,如果刚好从中间断开,转成字符串的时候末尾就会出现乱码。最直接的写法是直接调用getBytes()和new String(),用的是当前运行平台的默认编码。做Java开发经常会碰到byte数组和String互转的场景,比如读写文件、处理网络报文的时候。不同编码的适用场景差别不小。
2026-08-15 09:24:36
206
原创 sudo mv 移动并重命名文件,一条踩过坑的命令
这行的意思很直白:把当前目录下的 cuda-wsl-ubuntu.pin 剪切到 /etc/apt/preferences.d/ 下面,同时把名字改成 cuda-repository-pin-600。所以“目标路径存在”也包括父目录得在,这个前提别忽略。对接主流ACME渠道,证书合规有效,同时具备完善的到期提醒和自动重申功能,搭配简单的操作流程,适配各类用户的加密需求。一般系统不会凭空在那里留一个 cuda-repository-pin-600,但如果你之前操作到一半出了岔子,再跑一次,旧的就被冲掉了。
2026-08-11 19:56:27
172
原创 Java中实现拓扑排序的两种方式:Kahn算法和DFS
但日常工作中,Kahn 用得多一些,逻辑很平,不容易写错,代码审查也友好。思路很直接:维护每个节点的入度,把所有入度为 0 的节点扔进队列,然后逐个弹出,每弹出一个就加入结果序列,同时把它指向的邻居入度减一,减到 0 就入队。写后端的时候经常遇到依赖编排,比如任务调度、编译顺序,背后其实是个有向无环图(DAG)的拓扑排序:对于每条从 u 指向 v 的边,u 必须排在 v 前面。Kahn 算法胜在直观,而且天然支持环检测,线上跑起来如果数据里出现了循环依赖,直接抛异常就能拦截,不用额外加判断逻辑。
2026-08-08 19:56:15
234
原创 Git 删除本地分支:-d 和 -D 别再随便用了
D 删完之后,那些只存在于被删分支上的 commit 就丢了——除非你从 reflog 里再翻回来,但那就已经是补救措施了。不过很多人被 -d 拒绝过一次之后,就习惯性直接上 -D,后面也不太在意这两者的区别了。你确认那分支上的东西确实不要了,就换大写 D:git branch -D <分支名>。这个相当于 --delete --force,它不管合并状态,直接删,干净利落。如果分支上还有没合并过来的 commit,-d 会直接报错,提示类似 not fully merged,不让删。
2026-08-07 19:55:59
211
原创 纯前端语音转文字,用浏览器自带的 Web Speech API 就够了
通常的做法是调后端接口或者接第三方语音识别服务,但如果你不需要那么高的准确率,只是想快速跑起来,浏览器自带的 Web Speech API 就能搞定,而且完全是前端的事,不用搭服务、不用申请 key。整套代码我放在了一个 HTML 文件里,样式用的 Tailwind CSS CDN,图标用的 Font Awesome,都是外链引入,不用构建工具,直接打开就能跑。适合快速验证或者内部小工具的场景。加了个脉冲动画的 CSS,录音时按钮会呼吸闪烁,给用户一个明确的“正在录音”的视觉反馈,比纯文字状态提示直观。
2026-08-03 19:56:01
289
原创 Docker 挂载目录权限问题,我是这样搞定的
可以在 Dockerfile 里用 USER 指定一个非 root 用户,或者跑容器的时候直接 -u 指定,比如 docker run -u appuser -v /host/path:/container/path image_name。如果 Docker daemon 没有访问某个宿主机目录的权限,容器里挂载这个目录时也会挂掉,尤其在 daemon 不是以 root 跑、或者挂载的是 NFS 目录之类的情况下,表现出的症状跟前面的问题很像。如果在挂载时还可以指定更细的传播属性,但常规排查到这就够用了。
2026-08-01 19:56:06
221
原创 Android Studio Gradle里publish任务不见了怎么搞回来
如果同步之后还是看不到publish任务,执行 ./gradlew tasks --all 把完整任务列表打出来搜一下,有时候任务名跟你预期的不一样,比如带了build variant前缀。有次在Android Studio里想给一个库模块加上发布到Maven仓库的能力,结果在Gradle任务列表里翻了半天,根本没看到publish相关的task。如果你的模块用的是com.android.library插件,光加maven-publish还不够,还得在afterEvaluate块里把发布组件指定清楚。
2026-07-31 19:56:40
201
原创 一个 Student 结构体的简单封装
这种把操作和数据绑在一起的做法,好处是调用方不用关心内部细节,后面如果想换一种输入方式或者加个成绩校验,改结构体内部实现就行,主函数几乎不用动。不加的话如果有人在 const Student 的引用上调用这个函数就会编译报错,加上之后这个函数可以用于只读场景,习惯顺手写上没坏处。judge 的逻辑是只要三科成绩都不低于阈值就返回 true,阈值默认给了 60.0,可以通过传参覆盖。三个成员变量,id 是整型,s1、s2、s3 是 double,分别存学号和三科成绩。
2026-07-30 19:56:20
170
原创 Stata里做滞后一期和缩尾处理,我的几个习惯写法
缩尾之后发现变量值好像没变,基本是忘了写 replace,或者 cuts 里的分位数设得太宽,大部分值已经在区间内。反过来,先生成滞后再做缩尾,滞后项里可能还带着没处理的极端值。到底哪种顺序合理,取决于你构建滞后项的目的,没有绝对答案,但自己心里要清楚数据处理顺序对结果的影响。这两个处理本身不难,但每次隔一段时间不写 Stata,再上手时总会卡在一些小地方,索性把常用的写法和容易出错的地方整理一遍。需要注意的是,trim 之后会产生缺失值,后面的分析得考虑这一点,别缺着缺着样本量掉太多自己还没发现。
2026-07-28 19:56:24
243
原创 字节跳动Xpert平台:AI数据标注与评测全解析
比较吸引人的是附加价值,比如论文合作和项目认证,简历上能写一笔,对还在读书或者想转方向的人是个实打实的东西。另外平台背靠豆包大模型团队,有机会接触到一线团队的交流,虽然谈不上深度参与,但能摸到前沿在做什么,信息密度比看论文高。目的说得很清楚——给模型训练提供高质量数据,同时还能蹭上论文合作、项目认证这类附加价值,对一些想接触前沿方向的人来说,是个攒经历的路子。最近试用了字节跳动的Xpert平台,主要干的是大模型数据标注和评测的活儿,面向的群体挺广,本科生、研究生、博士生、已经工作的人都有。
2026-07-27 19:56:41
553
原创 SQL Server里用JOIN做UPDATE的正确姿势与一些坑
拿个具体例子说,假设有两个表:RdmMouldSpecBookDetail是目标表,jy_mdm_rdm_mould_spec_book_detail是源表,两个表都有字段Pk_Mdm,现在想把目标表的MSD_PartEdition字段更新成源表里对应记录的MSD_PartEdition值,但只更新那些值确实不一样的记录,免得无意义的IO。平时在SQL Server里写UPDATE,需要根据另一张表的数据来更新当前表,这种场景太常见了——比如从临时表同步计算结果回主表,或者两个系统间的数据修数。
2026-07-26 19:56:20
163
原创 Zabbix Web界面误报Server未运行的排查与解决
在Web界面里找到配置-主机,选Zabbix Server那台,点模板,搜索这个模板链接上去就行。无论是传统的域名证书,还是有效期7天的短效IP证书,都能通过标准化的接口为快速签发,确保证书的兼容性与权威性。都是比较琐碎的点,但碰到的频率不低,尤其刚搭好或者网络环境有变动的时候容易出。如果这两个填的是主机名或localhost,而Web服务器解析不到或者解析到错误的地址,Web界面就会认为Server没在运行。后来排查下来,原因其实挺集中的,基本都是配置、网络或者会话之类的问题,一个个说。
2026-07-23 19:56:32
177
原创 五子棋AI对战功能实现与多难度策略设计
中等难度的AI会进攻,也会象征性防守一下,但经常出现“看到活三知道堵,但堵完发现另一边又漏了”的情况,属于能跟新手有来有回的水平。基本想法是,遍历棋盘上所有空位,对每个空位模拟我方(AI)落子和对方(玩家)落子两种情况,分别计算进攻分和防守分,两个加起来作为这个位置的最终分数,选最高的下。评分系统的结构其实三层就够:先定义棋型模式和对应的分值常量,然后写一个局势扫描函数,对某个空位沿四个方向(水平、垂直、两条对角线)统计连子情况,跟棋型模式匹配得出一个分数,最后在决策函数里遍历空位求和。
2026-07-22 19:56:05
207
原创 Excel VBA多条件精确匹配填坑记
这种场景建议先用字典把项目表的数据存起来,key 可以用 A 列和 D 列拼接的字符串,value 存对应的 C 列值,一次遍历建好字典,匹配时直接查字典,不用内层循环。这一步做完,匹配用的字段才算备齐。有个需求要对支付数据做多条件匹配:支付表里 Z 列要去匹配单位项目表的 A 列,同时支付表的 I 列要等于项目表的 D 列,两列都命中的那一行,把项目表 C 列和 D 列的值填回到支付表的 AA 列和 AB 列。整套东西改完,变量冲突没了,匹配也严格到行级,再配合预处理和可选优化,基本能安安稳稳跑完。
2026-07-20 19:56:08
258
调用cloudflare接口自动申请免费的SSL证书
2024-07-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅