自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis-缓存与注解式开发

mybaits的缓存:将select语句的查询结果放到缓存(内存)中。下一次还是这条select语句的话,直接从缓存中获取,不再查数据库。只要内存足够大,一直会向二级缓存中增加数据,除非执行了增删改。这里的逆向工程指:根据数据库表逆向生成Java的pojo类,SqlMapper.xml文件,以及Mapper接口类等。一级缓存是无法替代的。eviction:指定从缓存中移除某个对象的淘汰算法。其中生成的XxxExample类是用来封装查询条件的。缓存的作用:通过减少IO的方式,提高程序的执行效率。

2026-04-05 13:44:46 270

原创 searxng-cli:Exa MCP 的开源替代路径,用更少上下文拿到更准的信息

作为默认检索/阅读入口,把 Browser 工具留给少数必须交互的页面,通常是 token 成本和准确性都更好的组合。这比“直接把 HTML 丢给模型再总结”更可靠:模型的上下文预算用在内容上,而不是页面结构上;候选筛选也更快、更稳定。完成后直接在opencode、claude code、codex 中让模型帮你搜索即可。这些约束会显著减少“模型需要猜测工具行为”的情况,从而提升链路稳定性与最终答案质量。一句话:它不试图用“更聪明的模型”对抗噪声,而是用“更干净的输入”提高准确性。

2026-04-05 13:44:04 176

原创 Condition底层机制剖析:多线程等待与通知机制 _

首先需要明白condition对象是依赖于lock对象的,意思就是说condition对象需要通过lock对象进行创建出来(调用Lock对象的newCondition()方法)。condition的使用方式非常的简单。但是需要注意在调用方法前获取锁。java/*** condition使用示例:* 1、condition的使用必须要配合锁使用,调用方法时必须要获取锁* 2、condition的创建依赖于Lock lock.newCondition();*//*** 创建锁*//**

2026-04-04 13:39:20 336

原创 基于 LangGraph 的AI 多Agent协作系统实战:从架构设计到并行调度

多个节点同时写同一个 state 字段,如何避免覆盖?LangGraph 的解决方案是Annotated+ Reducer 函数。本项目为"""自定义列表 Reducer:空列表重置,非空追加- Supervisor 传入 [] → 清除上一轮旧结果(每轮重置)- Agent 传入 [{...}] → 追加到列表(并行 fan-in 安全)"""return []# LangGraph 原生 reducer,自动管理多轮对话历史# 自定义 reducer,支持并行安全聚合 + 每轮自动重置。

2026-04-04 13:38:33 364

原创 从零实现富文本编辑器#11-Immutable状态维护与增量渲染

在先前我们主要讨论了视图层的适配器设计,主要是全量的视图初始化渲染,以及状态模型到DOM结构性的规则设定。在这里则主要考虑更新处理时性能的优化,主要是在增量更新时,如何最小化DOM以及Op操作、key值的维护、以及在React中实现增量渲染的方式。其实接下来需要考虑输入内容时,如何避免规定的DOM的结构被破坏,主要涉及脏DOM检查、选区更新、渲染Hook等,这部分内容在#8和#9的输入法处理中已经有了详细的讨论,因此这里就不再次展开了。

2026-04-03 13:58:08 331

原创 从零开始学Flink:Flink SQL 窗口(Window)操作详解

流数据(Stream)是无限的,像水流一样源源不断。我们无法计算“无限流”的总和(因为永远算不完)。为了计算,我们需要把无限的流“切”成有限的块,这个“切”的操作就是开窗(Windowing)。在 Flink SQL 中,窗口主要用于将时间序列上的数据分桶,然后在桶内进行聚合计算(如SUMCOUNTAVGFlink SQL 的 Window TVF 极大地简化了窗口聚合的写法。TUMBLE: 规规矩矩,互不干扰(分批统计)。HOP: 藕断丝连,频繁更新(移动平均/最近 N 分钟)。CUMULATE。

2026-04-03 13:57:26 331

原创 从DEM到三维地形:用PLY、OBJ、glTF构建GIS可视化模型

如下图7.3所示,是本例生成的PLY格式文件中的索引信息。.gltf后缀的文件就是用于三维场景数据描述的JSON文件,.bin后缀的文件就是储存缓存区数据的二进制文件,.jpg文件就是三维模型用到的纹理图片。因此,三维数据格式总是会随着计算机图形技术的发展而发展,要么会出现更新的三维模型数据的格式,要么会在已有的三维模型数据上作扩展。程序运行完成之后,生成.obj格式后缀的三维模型文件,其数据内容与.ply格式后缀的三维模型文件差不多,都是由顶点数据和索引数据组成的,只不过两者的数据组织形式不同。

2026-04-02 14:18:45 320

原创 STM32之控制变量与函数的存储位置

/ 多DMA缓冲区归类到"MY_DMA_BUFFER"段// PID函数归类到MY_FUNC_SECTION段变量可通过__attribute__((at(地址)))(单个)或段名 + 分散加载文件(批量)定位;函数需标注自定义段名,映射到 ITCM 等高速内存,通过.map 文件验证;需规避地址越界、对齐错误等问题,合理选择内存区域并处理缓存一致性。

2026-04-02 14:17:59 158

原创 PHP 的三大优势 这门“老将“为何依然重要

开发者比较语言时,讨论经常跑偏到性能基准、语法偏好或者互联网文化。能否快速交付功能而不埋下维护陷阱?能否集成数据库、队列和第三方 API 而不从头造轮子?能否处理混乱的数据和边缘情况而不把代码变成鬼屋?这就是 PHP 最擅长的领域。不是因为它最优雅,而是因为它的形状刚好契合大多数 Web 后端。带着这个思路,来看 PHP 在 2026 年的三大优势。

2026-04-01 14:56:40 344

原创 封装 WebRTC 低延迟视频流与 WebSocket 实时状态驱动的大屏可视化

我们公司需要开发一个监控大屏,实时展示油罐车在卸油作业过程中的监控画面,并同步显示 AI 识别出的作业状态(如:是否佩戴安全帽、是否连接静电球、卸油操作步骤等),原本是打算采用 videojs 来实现视频播放,但是在开发中发现,videojs 的延迟较高(3-10 秒),无法满足实时风控需求,后来使用了别的一些视频播放库,如 hls.js、flv.js 等,但是这些库的延迟也较高(1-3 秒),无法达到业主要求,最后去了解了下直播用的啥插件,尝试了了下 webRtc 效果还不错。什么是 WebRTC?

2026-04-01 14:55:50 317

原创 《地铁跑酷》接入HarmonyOS SDK,显著优化游戏启动体验

秒级启动通过在游戏退出时系统自动为游戏场景制作镜像,在下一次无资源更新冷启动时,可以直接进入游戏界面,接入秒级启动能力的游戏,只要不是恰好遇到资源包更新的情况,在上述场景中用户再次启动游戏时,系统可直接恢复游戏,使玩家快速回到游戏界面,减少重复加载带来的等待时长。HarmonyOS SDK将持续在图形渲染、资源加载优化和功耗控制等方向展开探索,在游戏性能与用户体验提升上挖掘更多应用场景,为移动游戏行业提供低成本、高价值、可复用的技术方案,携手更多游戏应用为开发者带来更加完善的技术实践参考。

2026-03-31 15:20:56 154

原创 StackOverFlowError 和 OutOfMemoryError 的区别

时,JVM 无法为新对象分配空间,触发此错误。时,虚拟机栈无法再创建新的栈帧,触发此错误。,这些信息便于我们直接定位。,堵死了(栈帧太多)。

2026-03-31 15:19:47 216

原创 JPEG 家族技术谱系简述

上,它们属于,底层算法思想差异很大。下面用一张结构图说明它们之间的关系。传统 JPEG 是最早也是最广泛使用的 JPEG 标准。它基于的频域压缩思想。基本流程:图像↓8×8 block 划分↓DCT 变换↓量化↓熵编码。

2026-03-30 15:10:15 145

原创 Qwen3-Embedding国产化部署

【代码】Qwen3-Embedding国产化部署。

2026-03-30 15:09:29 231

原创 Model Context Protocol (MCP) C# SDK v0.9.0-preview.1 发布

在深入剖析 v0.9.0-preview.1 版本的增量更新细节之前,系统性地理解 MCP C# SDK 当前的架构底座是进行有效评估的先决条件。该 SDK 在架构起源上并非毫无历史包袱的从零构建,而是建立在一个名为 mcpdotnet 的早期高价值开源项目的基础之上,该项目最初由 Peder Holdgaard Pedersen 发起,并在随后的发展中被吸收和重构为官方标准的 SDK。这种演进路径保证了该工具包在设计之初就经受了真实开发场景的检验。为了满足不同企业应用场景的复杂粒度需求,并严格遵循领域驱动

2026-03-29 15:30:12 361

原创 ava 版 Claude Code CLI 来了!(国产开源)Solon Code CLI 发布

Solon Code CLI 不是要取代 Claude Code,而是将这种先进的 AI 编程范式带入Java 可定制的世界,让每一位 Java 开发者都能享受到 AI 带来的效率革命。

2026-03-29 15:29:34 358

原创 决策树极简入门

物理学里说熵代表混乱程度。在决策树里,熵代表数据的“不纯度”(你也可以理解为** “纠结程度” **)。场景 A: 你面前有10杯奶茶,全是无糖波霸奶茶。这数据太纯了,熵 = 0。你闭着眼拿一杯都是你想喝的,完全不用纠结。你面前有10杯奶茶,5杯是你最爱的无糖,5杯是甜到齁的全糖,混在一起。这太混乱了,熵 = 1(最高)。你完全猜不到下一杯是不是“雷”。机器学习的目标就是:通过问问题(分裂),让数据的熵越来越小,直到变成 0(完全纯净)。决策树就是一套帮你做选择的“流程图”。机器利用熵(乱不乱)和。

2026-03-28 15:13:38 206

原创 jinja2 - 强大灵活的Python模板引擎

jinja2是一个用于生成动态内容的 Python 库。分离逻辑与视图: 将 Python 代码和 HTML(或其他文本)结构分离,使代码更整洁,视图更易维护。快速生成各种文本: 不仅限于HTML,还可以生成XML、CSS、JavaScript、配置文件等任何基于文本的内容。支持复杂的模板结构: 提供循环、条件语句、宏、继承等高级功能,让模板编写更灵活高效。

2026-03-28 15:12:55 221

原创 拆解 OpenHands(3)--- 启动

这些提示词中融入了特定领域的知识准则与操作规范,例如,与Git相关的Microagent,其提示词会包含Git操作的核心技巧与最佳实践,能够引导模型更精确地处理与Git相关的任务,成为主代理应对细分场景的“得力助手”。在OpenHands系统中,Runtime扮演着至关重要的角色,它为人工智能代理提供了一个稳定且可控的操作平台。memory初始化的时候有一个event_stream的订阅,会注册 EventStreamSubscriber.MEMORY,当有event的时候Memory 的。

2026-03-27 14:10:31 369

原创 Antigravity Skills 全局安装与配置指南

通过这种全局存储 + 本地引用节省空间:不需要在每个项目中重复下载几百 MB 的技能文件。保持整洁:项目代码库中只有轻量级的 Workflow 配置文件。能力复用:一次安装,所有项目受益。

2026-03-27 14:09:37 231

原创 windows10本地部署openclaw

与《最小二乘问题详解13:对极几何中本质矩阵求解》中介绍的8点算法(求解线性方程组)和Sampson优化(最小化非线性损失函数)不同,5点算法的目标是在恰好5对无噪声的归一化匹配点这一最小数据集上,完备地找出所有在几何上可能成立的本质矩阵。另一个关键环节在于,EstimateEssentialMatrixRansac 成功识别出内点后,我们将这些“清洗”过的内点传递给经典的 8点算法 以获得一个良好的初值,继而利用 Ceres 进行基于 Sampson 误差的非线性优化,从而在几何上精炼最终的模型。

2026-03-26 15:24:40 266

原创 基于LangGraph开发复杂智能体一则

基于 PCIe 建图,NCCL 拥有 PCIe 设备间的连关系。在此基础上,NCCL 使用 BFS 算法,计算任意 PCIe 设备之间的最优可达路径,即跳数最少,带宽最大的可达路径。记录从 GPU/NIC 出发,直至归属 CPU 这条物理 PCIe 链路上有哪些 PCIe 设备,并生成从 GPU/NIC 至 CPU 链路的 PCIe XML 链路拓扑。PCIe 设备之间的物理链路关系是事实存在的,但是 NCCL 需要将这些链路关系建立到自身的数据结构中,目的是后续 channel 的计算服务。

2026-03-26 15:15:07 215

原创 Maui 实践:趣谈 map 的取值特权,藏着 Go 的设计取舍

由于 msgType 可能已被销毁(所有订阅者取消后,msgType 会从 map 中删除),我们无法保证 key 的存在性,此时使用双返回值取值,通过 exists 标记判断 key 是否有效,既能安全获取 value,又能避免 nil 指针解引用导致的 panic,实现了简洁与安全的平衡。它背后藏着的,是 Go 编译器铁面无私之下的细致考量,也是 Go 大道至简设计哲学的生动诠释——规矩是为了保证一致性,而特权是为了解决实际问题,二者并行不悖,才造就了 Go 简洁、高效、可靠的特性。

2026-03-25 15:11:57 324

原创 OpenClaw+OpenViking + NVIDIA API 配置教程

OpenViking 是火山引擎开源的AI Agent 上下文数据库。分层上下文:L0摘要 / L1概览 / L2全文,按需加载节省 Token语义搜索:融合目录定位与向量检索自动摘要:VLM 自动生成文档摘要和概览会话记忆:自动提取对话中的长期记忆GitHub:# L0 层:一句话摘要# L1 层:详细概览。

2026-03-25 15:11:19 442

原创 Agent Skills 傻瓜式教程,26 年最火 AI 技术就这?

Agent Skills 是 Anthropic 推出的一套开放标准,目的是让 AI 能够学习使用各种专业技能,而不用每次都重复输入提示词。简单来说,它就是给 AI 装备的技能包。技能包里有精心设计的提示词、代码脚本、还有各种资源文件。把 AI 想象成一个职场小白,给他装上文档处理技能,它就立刻知道怎么生成 PPT、处理 Excel 表格;装上代码规范技能,它就知道怎么按照公司标准写代码。你挠挠头:等等…… 这不就是俺在做的事吗?把教 AI 做事的文档和 AI 要用到的文件打包成文件夹?

2026-03-24 13:35:07 383

原创 【EF Core】实体状态与变更追踪

然后在特定条件下,会触发比较,即比较实体引用当前各属性的值与当初快照中的值,从而确定实体的状态。再往后,咱们 foreach 语句给 DbSet 会触发 EF Core 去查询数据库,于是,我们看到,控制台在“数据库中的记录:”一行之后又发生了 Tracked 事件,有一个 ID=1 的实体被追踪了,它刚从数据库中查询出来,就是第二块绿色字体那里。注意,一实体一数据表的原则是不变的,这种特殊情况可以用在你这几个表可以组成一个整体,并且经常一起使用的,这样你在查询时就不用联合了,一般是一对一关系的。

2026-03-24 13:34:11 171

原创 Lab: Xv6 and Unix utilities

如果编译出错多半是因为qemu版本的问题(上面有解决方法),小概率是文件权限的问题(你可能在拉取代码时使用了sudo),权限的问题可以先尝试sudo make qemu,如果不行再问AI。的程序sleep,这个sleep会调用pause()这个系统调用来挂起进程,成品的效果是输入sleep n后xv6内核会挂起当前的用户进程n个时钟滴答数(ticks),具体多少多次时间一滴答我不太清楚。来拉取代码到本地目录,过程会耗费一些时间,github的服务器在海外,所以会下载的很慢,慢慢等就好了。

2026-03-23 22:40:41 231

原创 Obsidian中Template的使用

建议使用社区版本,功能更多。功能:帮你快速生成标准化笔记、减少重复操作、提升记录效率的工具。简单来说,它就像笔记的 “预制模板”—— 你可以把常用的笔记结构、固定内容提前写好存为模板,之后新建笔记时直接套用,不用每次都从头输入格式和重复信息。

2026-03-23 22:40:09 317

空空如也

空空如也

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

TA关注的人

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