- 博客(33)
- 收藏
- 关注
原创 领域驱动 vs 本体驱动:DDD 代码建模与 Ontology 语义建模的对比分析
DDD 是“从代码到业务”,而 Ontology 是“从概念到代码”。两者并不互斥,而是互补。如果你在做一个业务逻辑复杂、需要快速迭代的应用,DDD 是更好的选择;如果你在做一个跨系统共享语义、需要推理和校验的系统,那 Ontology 会让你走得更远。最好的架构师,往往懂得在正确的地方使用正确的工具。
2026-07-31 15:46:39
238
原创 用SymPy自动因式分解:从面积拼图到代数恒等式
今天,我们就用 Python 的 SymPy 库,让计算机帮我们自动完成因式分解,顺便看看它和“面积拼图”背后的代数恒等式有什么关系。这背后其实是“多项式环”上的因式分解算法,比如 Kronecker 方法或 Zassenhaus 算法,但对我们使用者来说,一行。下次你遇到一个复杂多项式,不妨先想想它的“面积拼图”长什么样,然后用 SymPy 验证你的直觉。更复杂的是,有些多项式看起来像“面积”,但需要“补拼图”才能分解。那时候,我们靠的是“面积拼图”——把代数问题变成几何图形,直观得让人拍案叫绝。
2026-07-31 15:44:20
230
原创 一套 Skills,搞定需求评审 + 用例生成全流程
很多团队在需求评审时,要么流于形式,要么评审后测试用例的生成依然靠人工“手搓”,导致遗漏和低效。今天,我就用通俗易懂的语言,结合代码示例,带你搞定这个流程。而通过一套标准化的技能(如需求建模、规则提取、自动生成工具),我们可以将评审结果直接转化为可执行的测试用例,减少人为误差。看,通过代码,我们自动生成了5个测试用例,覆盖了正常、异常、边界(锁定)场景。在需求评审会议上,你只需运行这个脚本,就能生成一份结构化的测试用例文档。在需求评审会议上,你可以用这种结构化方式让开发、产品、测试三方对齐,避免歧义。
2026-07-29 19:54:07
212
原创 centos搭建k8s 1.28集群
其核心流程如下:1. 检查系统环境(内核模块、swap 关闭、端口可用性)2. 拉取控制平面组件镜像(如 kube-apiserver、kube-controller-manager)3. 生成证书和 kubeconfig 文件4. 启动静态 Pod 形式的控制平面组件5. 生成加入令牌以供工作节点加入—## 基础环境配置(所有节点)所有节点(Master 和 Worker)需执行相同的基础配置。通过本文的指导,读者应能快速建立一个可运行的 K8s 集群,为后续的容器化应用部署打下坚实基础。
2026-07-25 14:47:20
158
原创 Duckdb存储结构
# 3. 压缩算法:列存的核心武器DuckDB支持多种压缩算法,根据数据类型自动选择最佳方案:| 数据类型 | 默认压缩算法 | 适用场景 ||---------|-------------|---------|| INTEGER | 字典压缩 + 位打包 | 低基数枚举值 || FLOAT/DOUBLE | 无压缩(直接存储) | 高精度要求 || VARCHAR | 字典压缩 | 重复值多 || DATE/TIME | 差分编码 + 位打包 | 有序时间序列 |### 3.1 实战演示压缩效果。
2026-07-24 15:14:28
253
原创 AI 成本战的隐性成本与降本五层:从“成功率悖论“到“系统复杂度“(中)
在上一篇文章中,我们探讨了AI成本战中“成功率悖论”的本质——即为了追求单次推理成功率而消耗的过度计算资源,反而推高了整体成本。当我们深入系统层面时,会发现成本结构的核心问题在于“系统复杂度”——为了优化一个指标,我们往往需要引入多层级的缓存、重试机制、模型路由等组件,这些组件本身带来的维护成本、延迟成本和故障风险,构成了AI系统中最隐蔽的“隐性成本”。更重要的是,如果失败率在高峰时段飙升至20%(比如模型负载过高),重试次数会指数级增长,形成“失败风暴”——重试加剧负载,负载导致更多失败,最终系统崩溃。
2026-07-23 14:39:04
210
原创 代码不是 AI 编程的最终资产,AI Coding 真正该存的是 Checkpoint
最终留下来的还是 diff,但 diff 背后的东西丢了:最初的 prompt 是什么,Agent 看了哪些文件,试过哪些方案,哪些测试失败过,为什么最后选了这个方向。它更像一个 Git 感知的记录系统:当 Agent 辅助完成一次变更并提交 commit 时,应该把本次会话上下文归档成 Checkpoint,并和 commit 绑定起来。人读需求、改代码、跑测试、提交 PR。一个 Agent 干到一半,另一个 Agent 可以读取历史 session,知道已经试过什么、卡在哪里、下一步该做什么。
2026-07-22 14:21:59
164
原创 Agent:Claude Code 真正的提效方式
那天晚上我赶着重构一个用户权限模块,思路是把原来散落在十几个文件里的权限校验逻辑收拢成一个 middleware。我打开 Claude Code,敲了一句:「帮我重构一下用户权限校验的代码」。它给了我一堆建议,列了五个文件要改哪些函数。我说「好的,改吧」。它改了第一个文件,改得还行。然后我继续说「下一个」。改完第二个,发现和第一个改法有冲突。我退回去,重新说「先看下整体结构再改」。它又给我分析了一通。我又说「好,按这个来」……
2026-07-22 14:21:27
193
原创 神经网络:通用函数逼近器
在《[[AI 研究方法的演变]]》那篇笔记中,我们沿着研究方法的演变脉络,理解了 AI 当前主流的研究为什么会走向深度神经网络。具体来说就是:在逻辑符号无法对所有规则进行编码,而概率方法又卡在了特征工程的情况下。深度神经网络提供了一种激进的方式回答了后一个难题,即放弃人工设计特征,让模型自己从数据中学。现在,我们需要进一步解释的是,这个回答背后的数学基础究竟是什么。通用逼近定理。
2026-07-21 14:23:36
174
原创 linux系统移植pjsua库实现sip通话功能 一、概述
(1)用户设备(UA)向SIP服务器发送 REGISTER 请求,包含用户标识(如 sip:user@example.com)。a.主叫发送 INVITE 请求,包含被叫URI(如 sip:bob@domain.com)和媒体描述(SDP协议)。(2)若需认证,服务器返回 401 Unauthorized,要求提供凭证(如用户名、密码)。c.被叫摘机后发送 200 OK,携带自身SDP参数(如接收IP和端口)。b.若可接听,返回 180 Ringing(振铃),主叫听到回铃音。
2026-07-21 14:22:45
207
原创 (Redis基础教程之十二) 如何解决Redis中的故障
对内存相关问题进行故障排除memory usage告诉您单个键当前正在使用多少内存。它以键的名称作为参数,并输出其使用的字节数:为了更全面地了解您的Redis服务器如何使用内存,可以运行以下memory stats命令:此命令输出与内存相关的指标及其值的数组。以下是报告的指标memory stats:peak.allocated:Redis消耗的最大字节数total.allocated:Redis分配的总字节数startup.allocated:Redis在启动时消耗的初始字节数。
2026-07-20 21:31:05
155
原创 模型进步没有想象中那么快
因此,下面这篇文章讨论的并不是“谁已经可以替代工程师”,而是一个更实际的问题:在人仍然负责目标、拆解和验收的前提下,Fable 5 与 GPT-5.6 Sol 分别适合承担哪些 task。科研任务尤其不用纠结:GPT 的联网搜索能爬到更多一手料,加上产出全面、核查仔细,Fable 在这块既没有搜索优势、又容易在大模型相关话题上被安全路由拦下来(详见下文第 6 点),综合体验差距非常明显——科研直接上 GPT。GPT-5.6 Sol 在这块偏"稳而平":能用、规范、不出错,但惊喜少一点,默认审美更朴素。
2026-07-20 21:29:45
188
原创 Transformer、“训练-微调”范式-AI 相关概念之(核心技术与架构)
QKV 就是实现注意力的三把钥匙:Q(我想找什么)去匹配 K(你是什么),匹配成功后,就把 V(你的具体内容) 提取出来,融合成当前词最精准的上下文含义。当它处理一句话时,不需要按顺序读,而是一眼就能看完所有词语,并且能瞬间判断出这句话里任意两个词之间的关系(比如:“它”到底是指“猫”还是“老鼠”)。在当前这个 AI 技术大爆发的时期,各行各业都在努力发展能够提升自身工作效率的技术,学习 AI 操作之前需先了解各个重要的概念,打牢基础,要对 AI全局有一个清晰的认识,才能事半功倍。”、“如何治疗咳嗽?
2026-07-19 15:23:14
253
原创 Transformer、“训练-微调”范式-AI 相关概念之(核心技术与架构)
QKV 就是实现注意力的三把钥匙:Q(我想找什么)去匹配 K(你是什么),匹配成功后,就把 V(你的具体内容) 提取出来,融合成当前词最精准的上下文含义。当它处理一句话时,不需要按顺序读,而是一眼就能看完所有词语,并且能瞬间判断出这句话里任意两个词之间的关系(比如:“它”到底是指“猫”还是“老鼠”)。在当前这个 AI 技术大爆发的时期,各行各业都在努力发展能够提升自身工作效率的技术,学习 AI 操作之前需先了解各个重要的概念,打牢基础,要对 AI全局有一个清晰的认识,才能事半功倍。”、“如何治疗咳嗽?
2026-07-19 15:22:32
230
原创 解决Linux下WPS PDF鼠标滚轮滚动过快的问题
注意,请根据你的系统选择合适的包管理器。此外,在aosc os以外的系统上,需要安装的包可能叫xserver-xorg-input-evdev,请结合AI辅助。7、再次执行xinput list-props ID | grep -Ei ‘libinput|evdev’,如果出现evdev,则证明设置成功。2、执行xinput list,找到类似↳ Razer Razer Ouroboros id=12 [slave pointer (2)]5、创建针对该鼠标的evdev设置。为什么是evedv?
2026-07-18 14:03:11
227
原创 跨系统聚合查询(支持菜鸟、多多、兔喜)
整个系统是无服务端,可以单独打包为C/S程序,使用IoTBrowser框架,界面使用Deepseek生成Html,定制开发了一个浏览器插件用于间接调用各大平台接口。目前驿站只需要一个人入完库就走,同时搭配语音播报提示客户取件注意事项和视频播放解说产品,实现无人自助取件和商业推广的双目标。视频播放(可以录制产品推广视频,售卖驿站商品,或者承接广告投放)自动短信发送(调用菜鸟的短信功能,可以绕开默认不发短信的设置)日志查询(这个很实用,有些顾客取走了,可以通过查日志排查)
2026-07-18 14:02:04
232
原创 OPPO R9st 获取Root权限
成功安装后,我们的手机在设备管理器中会由“其他设备”中的“QUSB_BULK”变成“端口(COM和LPT)”中的“Qualcomm HS-USB QDLoader 9008(COM3)”,名称中的“COM3”会根据每个人的电脑情况进行随机设置的,我这里的是“COM3”,可能你们的不一样,“COM4”或者“COM5”这样,这是正常的,这个编号我们可以留意一下,待会儿可以用到。手机执行关机操作,等待一会儿,等手机完全关机,并把数据线的USB口一侧插入电脑的USB接口中。
2026-07-15 14:11:56
185
原创 架构设计:把 GDAL “藏“ 起来
用户机器上可能装了 OSGeo4W、QGIS、ArcGIS,各自在环境变量里写入 GDAL_DRIVER_PATH、GDAL_DATA 等配置,不同版本的驱动混用可能导致加载失败。编码检测(EncodingUtil) —— Shapefile 的 .dbf 属性表编码是行业老大难:老数据可能是 GBK,新数据是 UTF-8,需要一个自动检测方案。另外,GDAL 初始化被设计为线程安全的懒加载——每个可能先被调用的类都在静态构造函数中触发初始化,而初始化方法用 lock 加标志位保证只执行一次。
2026-07-15 14:10:59
202
原创 Git 与 Github 基础认知
开发者通过 Git 完成本地代码的版本管理,再将本地仓库代码同步至 Github 远程仓库,实现代码备份、开源分享、团队协同开发。Git 是一款开源免费的分布式版本控制系统,主要用于解决项目开发中的代码版本管理、多人协作开发问题,能够精准记录每一次代码变更,实现版本回溯、代码备份、分支并行开发等核心需求。常规分支合并会同步所有代码改动,Cherry Pick 可精准筛选指定提交记录,仅将需要的代码改动合并至主干,无需合并整个分支所有内容,适用于局部功能迭代、紧急补丁合并场景。
2026-07-14 21:30:22
199
原创 【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (7)--- Policy Serving
OpenClawAPIServer 这个名字其实不准确,更准确的命名应该是:OpenClawProxyServer 或OpenClawTrainingPipeline—它是连接Policy Serving、Reward Judging 和Policy Training 三个功能层的协调器(Orchestrator),而非其中任何一层的实现体。├─ _submit_rl_turn_sample() ← 新增: RL-only 路径 (teacher=rollout)
2026-07-14 21:28:59
236
原创 写了include之后到底发生了什么
平时大家怎么用写 C 写久了之后,#include 这东西很容易被敲得越来越熟,熟到最后几乎不看它。比如你写串口,就先来一句:写标准输出,就来一句:写久了之后,#include 很容易被理解成一种“把某个东西接进来”的动作。好像写完这一句,编译器就知道这个头文件里的函数、变量、宏都归你用了。所以很多人脑子里会有一个很自然的印象:我写了 #include,后面那些东西就归我用了。这个印象拿来入门勉强够用,但只要你开始自己拆工程、写头文件、整理模块,很快就会发现这句话其实糊得很厉害。
2026-07-12 14:36:26
208
原创 fight-the-landlord —— 一款基于 Go 语言实现的斗地主游戏,支持联网对战、断线重连、智能机器人等功能。无控牌、无算法操控、纯粹的运气与技巧!
全平台开箱即用:原生适配 Windows、macOS、Linux 三大系统,使用脚本一键安装,无需配置开发环境,普通玩家复制一行命令就能完成安装。随机无控牌:全程采用随机洗牌发牌,无任何算法干预牌型、调整胜率的逻辑,匹配机制也完全不挂钩胜率、段位、游戏时长,仅支持纯随机匹配或房间号约战。终端沉浸式体验:基于纯终端界面打造,无多余图形窗口,资源占用低到可以忽略,一行命令快速启动,界面和日常工作的命令行毫无二致。全功能联机对战:完整支持三人联网对战,既能随机匹配路人局,也能创建私密房间,和好友定向约战。
2026-07-12 14:35:01
273
原创 从万众期待到被政府撤资,AI的两次死亡徘徊
比如正是在第一次寒冬的间隙里,斯坦福大学的费根鲍姆提出了"知识工程"的概念,为后来的专家系统奠定了方法论基础。更麻烦的是,现实世界千变万化,专业知识也在不断更新,系统永远赶不上变化的速度。科学家们信心爆棚,一位名叫司马贺的学者,后来拿了1978年诺贝尔经济学奖的那位,甚至公开预言:十年内,机器就能在国际象棋上击败人类,机器将解决一半的数学问题。参会的都是当时顶尖的大脑。而AI真正从"专家的玩具"变成"大众的工具",还需要等待三样东西的到来:足够多的数据、足够强的算力、以及一个能把所有能力串联起来的新架构。
2026-07-10 14:05:57
232
原创 Claude Code v2.1.139 深度解读:Agent 视图 + /goal 命令的架构逻辑
这次更新不是在 Claude Code 里加了几个按钮,而是悄悄改变了 AI 工具的协作模型。作为一个做了这么多年服务端的人,我看到 /goal 命令的第一反应是:这东西的设计和分布式任务队列里的「目标状态收敛」太像了——而这,才是 AI 编程工具从「你说我做」走向「你给目标我自己搞定」的真正拐点。这篇不只是功能介绍,我想把设计逻辑讲清楚。Claude Code v2.1.139 Agent视图与goal命令架构解读图:码哥字节技术图解Agent 视图:不只是个「多开」界面。
2026-07-10 14:05:00
233
原创 「JWT 解码」「JWT 在线验证」「JWT 生成器」「JWT PEM JWK 怎么用」
支持 HS256 / HS384 / HS512 / RS256 / RS384 / RS512 / ES256 / ES384 / ES512 / PS256 / PS384 / PS512;这页实现上比较实用的一点,是直接使用浏览器原生 Web Crypto API 做签名和验签,而不是再额外走一层后端服务。RS256 / RS384 / RS512 / PS256 / PS384 / PS512:输入 公钥。页面会把 exp 转成可读时间,并高亮“已过期 / 未过期”,这个细节能少走很多弯路。
2026-07-09 15:51:42
172
原创 LLM 到底在做什么
经过多层 Transformer 之后,每个 token 的向量会融合上下文,变成 hidden state。因为维度较大时,Q 和 K 点积的数值可能很大,softmax 会变得过于尖锐,训练不稳定。每个 head 都有自己的 Q/K/V 投影,最后多个 head 的结果会拼接或合并,再经过一个输出投影矩阵 Wo。如果后面出现“太甜”,那么“它”的 Q 会更匹配“苹果”的 K。模型就会更多读取“苹果”的 V。如果后面出现“太小”,那么“它”的 Q 会更匹配“书包”的 K。模型就会更多读取“书包”的 V。
2026-07-09 15:49:25
219
原创 AI Agent 的 4 个工程关键词:Prompt、Context、Loop、Harness 到底是什么?
这就是最近大家开始讨论 Loop Engineering 的原因。单看 Loop Engineering,它像是一个新黑话。比较好的理解方式,是把它和另外三个词放在一起看:Prompt Engineering、Context Engineering、Loop Engineering、Harness Engineering。
2026-07-08 21:57:24
183
原创 PortSwigger SQL注入LAB12
本题演示了如何利用可视化错误(错误信息或异常)将数据库字段通过报错暴露:通过将查询结果强制转换为不兼容类型(如字符串强制转换为整数)来触发类型错误,从而在错误消息或响应中泄露数据。关键步骤包括:先定位能触发错误的注入点,使用子查询与行限制(如LIMIT 1)确保单行返回,然后对目标字段施加强制类型转换以触发报错并读取返回内容。不要在生产环境中将详细的数据库错误信息直接暴露给客户端。对外返回通用错误提示,并在服务端记录详细日志供审计与告警使用。
2026-07-08 21:56:22
334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅