自定义博客皮肤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)
  • 收藏
  • 关注

原创 C++ 还顺带测试了 PCRE2 的 JIT 编译器,它支持几乎所有常见 CPU 平台,甚至包括龙芯,并且可以极大提高匹配性能。PCRE2 里我还开启了 Unicode 字符处理,在这个场景里这是必要

尽管只运行了两轮,但每个函数匹配的次数都在 1000 万次以上,足够摊平统计差异了。

2026-07-06 14:37:35 223

原创 重连成功,图表却骗了你

凌晨三点,行情监控脚本告警:WebSocket 断开。五秒后重连成功,日志显示连接恢复,心跳正常。你看了一眼 K 线图,没有跳空,没有断崖,价格曲线平滑。于是关掉告警继续睡觉。两周后跑策略回测,发现那天的分钟线有几根不对。排查了很久才找到根因:凌晨断流那段时间缺了几分钟数据,而重连后 WebSocket 只推送了当前快照,没有把断流窗口的 K 线补回来。你看到的平滑曲线,其实是前端把缺失段直接连起来了。连接 watch dog 只能证明传输通道恢复了,不能证明断流期间的 K 线已经完整补回。

2026-07-06 14:36:48 165

原创 程序员应知——技术债务

我们在银行借的房贷,5年还和20年还,利息会相差很多,对于技术债务,也是同样,如果尽快偿还,那么不会付出太大的代价,而且是在我们的能力承受范围之内的,但是如果拖的时间太长,债务就会变得越来越多,直至我们无力偿还。对于房贷,大家肯定每个月都会记着去还,但是对于技术债务,大家似乎就不那么关心了,的确这个东西不一定是谁借谁还,可能一个人的代码中产生了技术债务,然后由于负担太重,闪人了,那没有办法,这笔债务就会压在后来工作接替者身上,古语说:父债子偿,不知道这应该叫什么。从上面的种种我们可以看出,

2026-07-05 14:56:52 223

原创 盐从哪儿咸:为什么有跨域的问题

我们经常使用<Script>的src属性,脚本静态资源放在独立域名下或者来自其它站点的时候这里是一个url;这个url响应的结果可以有很多种,比如JSON,返回的Json值成为<Script>标签的src属性值.这种属性值变化并不会引起页面的影响.按照惯例,浏览器在URL的查询字符串中提供一个参数,这个参数将作为结果的前缀一起返回到浏览器;上面的代码第1行到第10行:判断是JSON类型调用,为本次调用创建临时的JsonP方法,并且添加了一个随机数字,这个数字源于用日期值;的同源验证,但是设置。

2026-07-05 14:55:52 225

原创 自己动手开发编译器(五)miniSharp语言的词法分析器

目前我的设计处理这一块不是十分高效,所以miniSharp的词法就稍微简化一点,允许以字母类的字符或下划线开头,然后零个或多个字母类字符、下划线或数字,也即不支持上述定义中组合类、连接类和格式类字符。miniSharp是C#语言的子集,miniSharp程序的语义就等于把它当做C#的语义。标识符是有必要仔细考虑的单词,因为我们希望miniSharp像C#一样支持用中文做变量名或函数名,所以肯定不能使用“下划线或字母开头,后面跟下划线、字母或数字”这样的定义。这三个是完全按照C# spec的规范编写的。

2026-07-04 15:02:31 189

原创 Kinect for Windows SDK开发初体验(一)环境配置

我们今天关于Kinect的介绍就到这里,在Kinect SDK的发布会上展示了很多有意思的DEMO,可见Kinect的应用前景是无限广阔的。

2026-07-04 15:01:28 158

原创 JOIN分类

它是微软所发展的Web前端应用程序开发解决方案,是微软丰富型互联网应用程序(Rich Internet Application)策略的主要应用程序开发平台之一,以浏览器的外挂组件方式提供Web应用程序中多媒体(含影音流与音效流)与高度交互性前端应用程序的解决方案,同时它也是微软UX(用户体验)策略中的一环,也是微软试图将美术设计和程序开发人员的工作明确切分与协同合作发展应用程序的尝试之一(另一个为WPF)。博客中提供的相关资料只是个人喜好,当然也有其他的很不错的资源,也期待大家的分享。

2026-07-03 17:36:31 185

原创 对CSS中的Position、Float属性的一些深入探讨

时光如梭,转眼之间,几年时间就像做梦一样无声无息的逝去!回顾一下,发现2013年是我人生新的起点,因为终于和相恋将近七年的女友于今年正月初六结婚了(现在应该改称老婆了),为此我在个人博客上发表了一篇文章前段时间一直很忙,忙着项目的进度、忙着项目重构以及代码的优化、忙着应付用户需求的变化等等, 现在终于闲下来了!趁着闲下来的几天时间,想写点什么,却不知道怎么下笔。

2026-07-03 17:35:08 203

原创 Spring 历史

Spring Boot 介绍Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架(不知道这样比喻是否合适)。

2026-07-02 21:27:56 205

原创 藏在正则表达式里的陷阱

前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共超过 100 处。通过排查代码,我们知道这个方法的主要功能是校验 URL 是否合法。很奇怪,一个正则表达式怎么会导致 CPU 利用率居高不下。为了弄清楚复现问题,我们将其中的关键代码摘抄出来,做了个简单的单元测试。

2026-07-02 21:26:49 232

原创 Spring 历史

Spring Boot 介绍Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架(不知道这样比喻是否合适)。

2026-07-01 16:44:08 163

原创 明白了回溯是导致问题的原因之后,其实就是减少这种回溯,你会发现如果我在第三部分加上下划线和百分号之后,程序就正常了。

一个小小的正则表达式竟然能够把 CPU 拖垮,也是很神奇了。这也给平时写程序的我们一个警醒,遇到正则表达式的时候要注意贪婪模式和回溯问题,否则我们每写的一个表达式都是一个雷。

2026-07-01 16:43:17 234

原创 前期准备:

鼠标无非以下几种基本操作:点击,移动,拖动,滚轮滑动。

2026-06-30 15:46:39 222

原创 【C++】智能指针

如果需要特殊的释放逻辑。

2026-06-30 15:45:55 196

原创 从回调认识动态代理 (Java)

想要实现这个思想,各个语言各有不同的方法(noob的猜测);Java要实现回调函数,就要利用其重要的面向接口(Interface)思想1.回调接口2.调用类3.重写回调方法,为了方便使用匿名内部类只需要编写一个继承callback的类,并重写方法即可传入Caller实现回调,it's simple。

2026-06-29 15:45:17 212

原创 FileInputStream和RandomAccessFile的源码分析和使用方法详细分析(windows操作系统,JDK8)

RandomAccessFile实现了DataOutput.interface和DataInput.interface两个接口,拥有读取和写入java基本数据类型(byte,short,int,long,double,float,boolean,char) 和UTF-8字符串方法,有效地与IO流继承体系中其他部分实现了分离,由于不支持装饰者设计模式,所以不能与OutputStream和InputStream的子类结合起来使用。通过适配器模式,屏蔽了底层系统的复杂性,提供了跨平台的统一文件读取接口。

2026-06-29 15:44:22 242

原创 从 Prompt 到 Loop:理清 AI Agent 工程的概念演进

也就是说,模型之外的所有东西都是 Harness。你说"Harness",可能指的是 Claude Code 这个产品我说"Harness",可能指的是 Initializer + Coding Agent 这种设计模式他说"Harness",可能指的是他项目里的 AGENT.md 配置文件三个人用同一个词,说的完全不是同一个东西。这就像说"软件工程"——你可能在说设计模式,也可能在说编程语言,也可能在说某个具体的代码库。问题的根源在于:Harness 的范围太广了。

2026-06-28 15:54:04 201

原创 一文读懂AI应用技术:自然语言处理、语音识别/合成、可解释AI

要先把你的声音变成文字(语音识别),理解"明天早上八点"是时间、"定闹钟"是任务(自然语言理解),然后执行操作,最后用语音告诉你"好的,已经设好闹钟了"(语音合成)。让机器读懂你说的话,让机器听懂你的声音,让机器能开口说话。这一技术也应用而生。昨天我们简单地介绍了《》,今天这篇文章,就把这四项技术讲清楚。读完之后,你会理解:为什么现在的AI能和你丝滑地对话。

2026-06-28 15:53:22 239

原创 把坏运气关在门外:哈希的随机化之路

哈希表通常被描述成“均摊 O(1)O(1)”的数据结构。这个说法在日常编程里很好用,但它暗含了一个前提:输入没有系统性地撞向同一批桶。只要这个前提失效,哈希表就会从一个轻快的工具变成一条很长的链表,或者一段反复探测的泥潭。当输入可能很坏,或者你无法相信输入分布时,怎样用随机化把坏运气挡在门外。

2026-06-27 19:35:14 200

原创 记录一下我的 Gradle 开发环境配置过程(萌新扫盲)

已经好久不写随笔了(虽然我的随笔并没有什么含金量),上一次写还是2025-11-10之前写随笔写博客记录,主要是为了自己后续工作方便,遇到问题随时回来查之前写过的文章记过的笔记,同时若能帮助到别人也很高兴,现在大 AI 时代几乎没有什么是 AI 解决不了的,遇到什么问题随口一问就解决了,所以好久没有记录一些东西了。

2026-06-27 19:34:28 225

原创 Triton学习 · Part 1 · Hello, world!

也就是说你内核写的算子代码(向量级的代码)并不会被GPU中的某个线程所看到。这个内核被并不会直接被 Python 的解释器调用,而是会在 Triton 的 JIT(即时编译)下被转为对每个GPU中线程的具体命令。还是我们这个“向量加法”算子进入了一个无限循环?),(此处可为了理解类比为数组),而一个整数加上一个向量等于一个新向量(原向量的每一位加上该整数)。易知,a⃗a 、b⃗b 的指针地址加上第 nn 维元素的偏移等于指向该元素地址的指针,Triton所操纵的,不是线程级别的代码,而是向量级的代码。

2026-06-25 19:08:15 193

原创 OpenCode 对接实践:从独立进程到共享 Runtime 的架构演进

下面分享的架构演进过程,都是我们在实际项目中踩坑、优化出来的真实经验,反正也没辙,踩过的坑总得填上。OpenCode 的 runtime 是有状态的,直接用外部端点相当于上下文丢失——就像失去记忆的人,茫然无措。就像那个冬天的晚上,窗外的竹子还是和昨天一样,少了那份对她的回应,她还是喜欢看着窗外——runtime 也是如此,需要有人默默守护。这个设计很关键,它支持会话恢复和重启,避免每次都创建新会话。这样更灵活,也避免了 submodule 带来的权限和协作问题——毕竟谁也不想看见那张报错的照,可是没辙。

2026-06-25 19:07:03 199

原创 不用写脚本!Browser-Use 实操:AI 直接驱动浏览器自动化测试

作为测试工程师,你是否也被这些问题困扰:写Web自动化脚本耗时费力,元素定位反复调试仍报错;非技术测试同学想做自动化测试,却被代码门槛拦住;传统自动化工具易被反爬检测,回归测试反复卡壳;多场景测试需切换工具,流程繁琐且效率低下……今天给大家推荐一款GitHub近85k+ star的AI神器——,它彻底打破了传统浏览器自动化的壁垒,无需编写一行代码,仅用自然语言就能操控浏览器完成各类测试任务,让测试自动化变得人人可上手,大幅释放测试人员的时间和精力,聚焦核心的问题定位与分析。

2026-06-24 16:43:14 274

原创 MAF快速入门(24)整合多个Skill来源

MAF 1.1.0 对 Agent Skill 的补全绝对是工程化的典范,今天我们来看看如何整合多个Skill来源实现企业级多技能控制。在写Agent Skill的时候,我就在想企业级应用中应该需要一个Skill管控,维护一些中央可复用Skill推送到各个员工的Agent中,而各个员工也会自己写一些自己任务的Skill 或者 重写远程Skill来覆盖实现自己的任务。

2026-06-24 16:24:13 164

原创 渗透与常见服务配置

点击查看代码。

2026-06-23 16:35:57 211

原创 【开源】《clip》翻译功能怎么用?复制一下就能直接翻

这次新增的翻译功能,更像是在这个基础上又补了一层日常效率增强。少输入少跳转贴近剪贴板本身的使用习惯如果你已经在用 clip,不妨顺手把翻译功能也配上,很多时候会比单独开一个翻译工具更方便。

2026-06-23 16:34:51 246

原创 强化学习的基本循环:

首先,我们定义一个参数 ��(�):分子新策略(正在训练的策略)下,在状态 � 采取动作 � 的概率。分母旧策略(收集这批数据时的老策略)下,在状态 � 采取动作 � 的概率。如果 ��(�)>1,说明新策略比旧策略更倾向于做这个动作;如果 <1,则反之。

2026-06-22 19:44:03 189

原创 agentgo 运行时架构深度解析:一个 Go AI 编程助手的核心引擎设计

其中「危险命令」由 `classifier.Classify(cmd)` 判定(`permission/classifier.go`),独立于模式设置——**任何模式都阻止 `rm -rf /`、`format c:` 这类操作**。`term` 用于终端原始模式(REPL 输入),`sys` 是 `term` 的传递依赖。3. **只读无进展检测**:`read`/`grep`/`glob`/`webfetch` 返回相同结果 ≥ 5 次 → **Block**,"无需重复调用"

2026-06-22 19:42:46 251

空空如也

空空如也

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

TA关注的人

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