Ajax Zhan's Blog

Welcome!This is Ajaxzhan.
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。

解一个问题,然后在解这个问题的过程中学习和探索,不断获得环境反馈和奖励信号,然后调整自己的策略,更新自己的“激活知识”,整个过程是一个探险的过程。不管解不解得出来,整个过程都更新了“激活参数”,锻炼了肌肉,将主体往正向状态拉。

一种错误的思维方式是:想要一次性解决一个问题,想要直接追求结果奖励,企图通过现有的知识将整个问题给覆盖住。整个过程尽管会不断的试错,但都是无用功,只会不断的探索错误路径,单纯做 sampling 而不做learning,逐渐陷入死循环,感到绝望。

最近越来越发现心态的重要性。要把自己从第二种错误思维方式纠正过来。

Kimi K2.6使用下来太失望了,今天一直并行开发/修复三个小项目,没有一个能正常做好。

第一个是卡在Dockerfile不会修,重复迭代给反馈了4-5次都没解决,CodeX一下子就解决了。

第二个是让他写一个Obsidian同步插件,也是疯狂出问题,给截图给反馈就是修复不好,真的是把我蠢到了,估计还不如DeepSeek-V4,本来是看着他有多模态才买的套餐,失望了。

第三个让美化一下UI,跑了2个多小时,美化的点我基本看不出来。

总结:Kimi K2.6比较拉,远不如CodeX,但是Token卖的并不便宜。。。

Kimi Code不如CodeX好用,今晚一个Dockerfile的问题解决了好几轮都没好,一般来说CodeX这种问题交互个2-3轮就好了。可见Agent好不好用还有一个关键问题——能否分析日志后fix bug以及在多轮迭代中找出真正bug的能力,而不是仅仅是搭建一些前后端代码的事情。Kimi在这方面显然不如CodeX,出现问题的次数和频率比较高。

1、Context浪费与Harness的重要性:(1)OpenClaw带来的问题:Context管理一塌糊涂,Token浪费十分严重。Claude Code则通过大量的工程优化提升了Token利用率。(2)外部工具的可靠性决定Agent是否经常试错,决定了Context利用效率。

2、Agent互联网的特点:(1)工具调用是高频、短请求、高并发的特点。(2)Agent上网不一定有合适的“CDN”,导致资源的不可缓存与浪费(3)缺乏针对Agent的身份鉴权机制。相关创业思考:(1)时间窗口很短,估计5-10年成型。(2)市场规模很大,Agent带来的算力消耗是巨大的。

酒神时代诚不我欺,Claude code源码泄漏,今天一堆公众号在讨论和分析,算是今年的一个必学项目了,在我看来这比龙虾关键多了,现在还有多少人讨论龙虾?好可怕的迭代速度。

这是AI时代,也是一个酒神时代——新技术、新产品、新SOTA层出不穷,从传统大厂到创业公司到OPC到每个个体——每个人都在拼了命想赶上这波浪潮。

神奇的是,在感性和理性的拉扯中,我的理性在这一个月里面变得淡了许多,几乎没有占据过主导地位,感性倒是久不散去,给我带来了许多欢乐和痛苦。

只需要将VPN改成虚拟网卡模式,再打开Cursor的HTTP2.0模式就不会有模型被拦截的问题了,很神奇。解决了HTTP1.1网络环境太差的问题。

最近开始意识到一种很重要的能力——幽默,当然这种幽默不仅仅是对别人,更多是对自己的一种幽默。如果一个人都无法进行自嘲和对生活中的事情进行解构,那么这个人绝对会获得特别痛苦和憋屈,更不用说会产生什么有价值的思考了。所以保持一种对自己冷幽默的态度还是很重要。

兼具深度与启发性的分析,能有效帮助培养更敏锐的Research Taste:关于大海捞针是一个很好的评估长上下文的指标——https://www.zhihu.com/question/654570878/answer/1965228622118888157

动手学微服务(一)实战MySQL读写分离和分库分表

本文围绕用户中台的高并发需求,深入探讨MySQL读写分离与分库分表架构。首先分析读写分离的必要性,通过主从复制缓解读压力,并介绍代理层与中间件实现方案;随后阐述分库分表的类型(垂直/水平)及分片算法,同时指出分布式事务等挑战。实践部分演示冷热分离表设计、存储过程创建分表及Docker搭建MySQL主从架构,为后续ShardingJDBC应用及主从延迟解决方案奠定基础,助力高并发场景下的数据库性能优化。

微机复习笔记(I):8253芯片

8253是可编程定时/计数器,通过软硬结合实现定时计数,不占用CPU且可程控调节精度高。其内部含3个独立16位通道,每个通道可设6种工作方式。编程需先写控制字(选择通道、工作方式、计数方式及读写方式),再写计数初值(>255分两次)。6种工作方式中:方式0(计数结束中断,初始OUT低)、方式1(硬件触发单稳,负脉冲宽度可调)、方式2/3(连续负脉冲/方波,自动重装,分频应用)、方式4(软件触发选通单脉冲)、方式5(硬件触发选通单脉冲,自动重装)。例题涵盖控制字配置、定时波形生成及长延时设计,突出其在定时、分频、中断等场景的应用。

部署Nacos也能踩坑?Nacos2.3.1部署踩坑记录

本文记录了作者在微服务项目中使用Dubbo与Nacos时,通过Docker部署Nacos 2.3.1版本遇到的鉴权配置问题。部署时采用官方Docker方式,并选用MySQL存储数据。开启鉴权时,发现直接配置环境变量(如NACOS_AUTH_USERNAME/PASSWORD)无效,经排查原因为新版本未预置默认用户数据。正确做法需在MySQL的users和roles表中手动插入用户信息(密码需BCrypt加密),并配置对应角色。最终成功实现鉴权,Dubbo服务可正常向Nacos注册。

阿里也出手了!Spring Cloud Alibaba AI初体验

Spring AI是受Python项目启发的AI应用开发框架,核心在于提供抽象能力、简化开发,支持多模型(如OpenAI、通义)及向量数据库,屏蔽底层交互细节。Spring Cloud Alibaba AI基于其适配国内通义大模型,支持对话、文生图、文生语音等功能,提供便捷的Spring Boot集成。动手体验显示,通过简单配置依赖与API-Key,即可快速实现文本问答、图像生成、语音合成等模型对接,代码简洁(如ChatClient一行调用)。使用小结指出其简化复杂AI应用开发的优势,但也存在响应时间优化空间及模型选择灵活性待提升问题,未来将持续适配VectorStore、RAG等场景,助力国内Java开发者高效构建AI应用。

实践札记:内网穿透Frp踩坑

本文针对物联网项目中华为云IoT平台数据需转发至本地Web服务的需求,探讨了内网穿透解决方案。作者排除了直接部署云服务器和转发脚本方案后,重点实践了内网穿透技术。过程中先后尝试了ngrok、CloudFlare tunnel等工具,遭遇了访问限制、带宽不足、URL格式错误等问题。最终采用frp(高性能反向代理工具)实现成功穿透,通过在云服务器和本地分别部署frps和frpc服务,配置HTTP代理使公网可通过自定义域名访问本地服务。文章详细分享了frp的配置要点、systemd管理最佳实践,为类似场景提供了可复用的解决方案。

系统设计:如何使用AOP设计一个防重提交功能

本文介绍了防重幂等的概念及SpringBoot实现方案。防重幂等旨在防止用户重复提交相同数据导致业务异常,通过AOP+Redis实现。核心设计思路是:将用户路径、请求参数和Token生成唯一ID存入Redis,拦截重复请求。实现方案包括自定义@RepeatSubmit注解(设置间隔时间、时间单位和提示消息)和@RepeatSubmitAspect切面(前置验证、后置处理和异常处理)。切面通过MD5生成唯一标识,Redis存储限制同参数请求,业务成功则保留限制,失败则释放限制。测试验证了2秒内重复提交会触发异常,有效防止了重复提交问题。

开发札记:如何在业务中添加日志系统

本文详细介绍了SpringBoot中三类日志系统的开发实践:系统日志、登录日志和操作日志。系统日志基于Logback框架实现,配置控制台和文件输出,并集成p6spy进行SQL性能分析。登录日志采用SpringEvent事件机制,通过@Async注解实现异步监听,记录用户登录信息。操作日志通过自定义@Log注解和AspectJ切面实现,记录操作类型、请求参数等详细信息,同样使用异步处理提升性能。文章还深入讲解了线程池配置与@Async异步注解的使用,确保日志记录不影响主业务流程,实现高效可靠的日志管理。

开发札记:Validator注解配合国际化

本文详细记录了Spring Boot中国际化与Validator校验的配置及协同使用。首先通过i18n目录配置多语言资源文件(如messages.properties、messages_en_US.properties),结合Yml配置和自定义LocaleResolver实现请求头语言解析。封装MessageUtils工具类,支持异常信息与日志的国际化输出。随后集成Hibernate Validator,通过ValidatorConfig配置快速校验模式,并封装ValidatorUtils工具类。利用@Validated注解或编码方式实现实体校验,结合国际化资源文件(如@Size注解引用length.not.valid键值)实现动态错误提示。最后通过分组校验(AddGroup/UpdateGroup等)满足不同场景需求,提升开发效率与用户体验。

开发札记:基于Sa-Token构建权限系统实战

本文详细介绍了如何使用Sa-Token框架整合JWT实现登录鉴权和权限授权,并采用Redis作为数据持久层。文章首先说明了必要的Maven依赖和yml配置,包括token名称、有效期、JWT密钥等关键参数。随后通过自定义SaTokenConfig类实现拦截器功能,注入JWT模式、权限接口和Redis自定义DAO层。重点分析了登录验证流程,包括密码校验、token生成与Redis存储机制,以及基于注解和API的权限功能实现。文章还深入探讨了Sa-Token的源码架构,包括多级缓存策略、上下文持有类和拦截器原理,为开发者提供了完整的实战指南。

JVM基础:内存结构与垃圾回收

本文详细介绍了JVM内存结构与垃圾回收机制。内存结构分为线程共享(堆区、方法区)和线程私有(程序计数器、JVM栈、本地方法栈)区域,其中堆存储对象,方法区存放类元信息(JDK8后移至元空间),直接内存用于NIO优化。垃圾回收基于可达性算法,通过GC Root(如线程对象、类加载器等)判断对象存活,并支持强、软、弱、虚、终结器五种引用类型。回收算法包括标记清除(存在碎片)、复制(高效但空间利用率低)、标记整理(无碎片但效率低)及分代GC(年轻代复制算法+老年代标记整理),主流垃圾回收器有Serial(单线程)、CMS(低延迟)、Parallel(高吞吐)和G1(平衡延迟与吞吐)。