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

原创 DeepSeek涨价了?大白话聊聊峰谷定价

我最近给多家企业做过提效智能体,感受很明显:企业现在不是在玩 AI,而是真的开始把 AI 接进业务了,智能体在真正地给企业提效了。它更像一个能理解任务、调用工具、读取数据、执行流程的 AI 助手。所以 DeepSeek 如果涨价后能换来更少限流、更稳定的响应、更可预期的服务,对企业来说反而是好事。这类任务用户就在等,高峰期贵一点也要跑。如果用 DeepSeek V4 做 Demo、做原型、做代码生成,不能再完全按以前的低价心态来用了。重点来了,企业以后要做的不是简单“接一个模型”,而是要做 AI 调度。

2026-07-06 15:18:48 238

原创 Claude Code项目越写越乱?这套清理流程能救你

你有没有遇到过这种情况:用Claude Code开发了一段时间后,打开项目目录一看,里面堆了三四十个文件,有些是你自己写的,有些是Claude生成的,还有一些你根本不知道是干嘛用的。一位网友发帖说:“你那22万行代码的代码库可能是一团臃肿的乱麻。建议是把重构和删除死代码作为你工作流程的常规部分。”虽然说的是一个更大的项目,但这个原则适用于任何规模。Claude生成代码很快。它也会生成你不需要的代码。用Claude Code开发就是这样的。它写代码确实快,但不会管你的项目是不是已经有一个同样的功能了。

2026-07-06 15:17:37 248

原创 Dot Net下实现屏幕图像差异获取v2.0

,答案很简单,因为我们不止是要比较出不同,更重要的是要把不同的部分加以利用。如果分块多,则每一个分块的数据量就小,但是比较的次数就会变多。因此选择一个合适的粒度会影响程序的性能,据文献资料的记载和他人的尝试,一般认为把屏幕分成16*8块最为合适。我们对两幅图像的比较,可以逐个像素比较,也可以先把图像分块,然后比较对应块中的数据。那么,到底分块是什么个概念,又该如何分块,分块后的数据如何比较呢?下面我将逐一进行介绍。按横向划分4块,纵向划分2块的方式,可以画出一个二行四列的网格,其中每一格就是分块数据。

2026-07-05 15:36:16 159

原创 什么是.NET Compact Framework

基于.NET Compact Framework开发的程序,可以叫做托管程序,英文叫做Managed code。所谓Managed code就是使用C#,VB.NET语言来编写代码,使用.NET Compact Framework来开发,编译成平台无关的中间语言(Intermediate Lanuage, IL)的文件的程序。

2026-07-05 15:35:10 236

原创 Framework4.0提供了一个包装类 Lazy<T>,可以轻松的实现延迟加载。

在这个例子中,使用了BlogUser对象,该对象包含多个Article对象,当加载BlogUser对象时,Article对象并不加载,当需要使用Article对象时,才加载。///如在本例中,T为string,则TestLazy.GetString方法的返回值必须也是string类型。///原型为Lazy<T> 对象名=new Lazy<T>(Fun<T>)///采用泛型委托进行构造,实例化此委托时要求必须是返回值T类型的方法。///这行代码表明:要创建一个延迟加载的字符串对象s。包含子对象的延迟加载。

2026-07-04 15:43:02 163

原创 一步一步教你搭建win7下的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)

打开文件夹,进入C:\cygwin\bin\ 目录中,这个是默认的安装目录,如果你修改过安装目录,自己进入到cygwin的安装目录下的bin目录中。在Choose A Download Site界面选择-》这个自己选择了,就是选择下载的镜像,推荐使用.jp结尾的日本网站,速度比较快。在命令窗口中输入 tar xf node-v0.4.7.tar.gz 回车,node-v0.4.7.tar.gz为你自己下载的版本。在命令窗口中输入 node --version 回车,看看你的node.js版本。

2026-07-04 15:42:16 203

原创 使用树莓派制作的远程开门器

我厂的电子门锁的开门设备是通过一个带弹簧的开关(门内,类似墙面上开灯的开关)控制的,按下开关就能打开门,按下开关的时候能够听到明显的继电器闭合的声音,因此,趁着没人的时候我把开关拆开看了一下,证实的确是通过触电控制的一个继电器。

2026-07-03 19:42:29 221

原创 高性能分布式计算与存储系统设计概要(下篇)

在上篇里,我们主要讨论了,这个系统怎样处理大数据的“读”操作,当然还有一些细节没有讲述。下篇,我们将主要讲述,“写”操作是如何被处理的。我们都知道,如果只有“读”,那几乎是不用做任何数据同步的,也不会有并发安全问题,之所以,会产生这样那样的问题,会导致缓存和数据库的数据不一致,其实根源就在于“写”操作的存在。下面,让我们看一看,当系统需要写一条数据的时候,又会发生怎样的事情? 同样,我们还是以friend list为例。现在,我登陆了这个网站,获取了friend list之后,我添加了一个好友,

2026-07-03 19:41:03 149

原创 谈谈敏捷开发

我对敏捷开发是源于10多年前看了一本关于迭代开发的书,从而对迭代开发有了一些兴趣。从那时开始有了迭代开发的概念。随着项目经验的增加迭代的重要性也越发觉得明显。随后进入了提倡敏捷开发的公司,被迫式的接触了许多“敏捷开发”,随着项目经历越来越多,慢慢的就开始有了更新的认识和想法。但是在接触敏捷开发这个体系之前,自己有机会做一个项目,那个时候我开始将自己认为更有利于项目的管理工作做了一些应用,那个阶段我的主要做法是:1、项目中开始划分更短的制品交互周期,而不是以前那样等待产品开发完毕后发布各种测试版本。

2026-07-02 22:07:11 191

原创 2.0 石器时代

3.0版本上线三个月之后,系统运行的还算良好,但是我们发现数据库表项在飞速膨胀。我们的云服务用户已经有几万个,每个采集端每天平均都要上传几十条视频,所以按照这种速度,单表记录很快就来到了将近1000w。在mysql上,1000万几乎就是单表记录上限了。搞web的兄弟发现这一趋势后,做了分表方案。按照采集端的cid尾数 即(0-9),将event,file,以及映射表分成了10张表。虽然是解决了存储方面的问题,但是随着使用云服务的用户在不断增加,数据库的访问压力也在渐增。

2026-07-02 22:06:28 230

原创 打破牢笼,展望更高层次的世界

我们程序猿长期从事技术工作,有意无意的以机器的方式思考问题,擅长和机器沟通,逐渐的荒废了和人的沟通能力。程序猿的价值是由其编写的软件的价值决定的,而软件的价值是由客户的价值决定的。因此技术的价值最终是由客户的价值决定的。[袁永福原创]那么如何给客户带来价值,那就是解决客户的痛点,如何得到痛点,那就从客户需求中挖掘,如何得到客户需求,那就需要和客户足够多的有效率的沟通。笔者袁永福是一个十多年的老程序猿,一穷二白的出来创业多年,期间经历许多曲折和磨难,成功的在炮火连天的商业战场上活了下来,并持续发展中。

2026-07-01 19:35:25 200

原创 单系统登录机制

可事实是,如同上面的论述,“灵活”与“局限”从来不是孤立存在的,也不是被孤立地评判的,它是需要有“语境”的,是由你的实际问题的规模和目标所决定的。如同上面所举的例子,如果你的代码复杂度不能跨过一定的基准线,你是无法真正体会到“创建不同文件夹和不同文件”的强烈需求的。在你的框架构建中,你需要找到的是一种合理的组织方式,使你的系统能够灵活地增添新的代码。所以,为了让你的“UI部分的代码成一堆”,“数据连接的代码成一堆”,“业务逻辑的代码成一堆”,你必须给予这些部分强硬的限制,让它们只能在特定的范围内出现。

2026-07-01 19:34:28 207

原创 思路及解答暴力

对每个B[i]都计算A中除A[i]外所有元素的乘积,双重循环,外层遍历B的每个位置,内层遍历A数组跳过当前元素java// 根据题目要求,长度<=1时返回空数组// 遍历每个B[i]i < n;i++) {// 初始化乘积为1// 计算A中除A[i]外所有元素的乘积j < n;= i) { // 跳过当前元素A[i]// 将结果存入B[i]return B;

2026-06-30 16:41:00 238

原创 思路及解答递归

注意:上⾯说的第⼀个字符是不是匹配,除了两个字符相等的情况,其实还有模式串的字符为' . '的情况。java// 模式串为空时,文本串也必须为空才匹配// 检查首字符匹配:文本串非空且字符相等或模式为'.'// 处理'*'通配符(确保模式长度≥2且第二个字符是'*')// 两种情况:1) '*'匹配0个前驱字符 2) 匹配1个及以上前驱字符} else {// 无'*'情况:首字符匹配且剩余部分也匹配。

2026-06-30 16:40:08 160

原创 规划与协调-TodoWrite

/ --- 1. 状态管理:TodoManager ---// 任务状态枚举// 任务实体// 管理器类i++) {"[ ]" :// --- 2. 工具定义与分发 ---// 新增 todo 工具static {// ... 省略已有的工具注册// 注册 Todo 工具});// --- 3. 核心循环 ---// 新增:跟踪轮数。

2026-06-29 16:36:17 216

原创 返回主页Do or Not Do, Must Keep Trying To Know The Result !尝试远比想象好 - - - - 弥烟袅绕

gRPC是Google开源的高性能RPC框架,基于HTTP/2和Protocol Buffers,支持双向流、多语言代码生成。相比REST JSON,gRPC序列化体积小3-5倍,延迟降低30%以上,是微服务间通信的首选方案。回到顶部回到顶部。

2026-06-29 16:35:30 194

原创 架构选型与规划

该架构为Active/Passive(主/备)模式,只有主节点运行GitLab服务并挂载存储,备节点通过DRBD实时同步数据。将GitLab各组件拆分部署:前端负载均衡(HAProxy/Nginx)+ 多个GitLab应用节点 + PostgreSQL集群(Patroni+etcd)+ Redis Sentinel + 共享存储(NFS/Ceph)。本文推荐方案一(DRBD + Pacemaker) ,性价比高、部署相对简单,适合大多数企业场景。企业版(EE)提供更多高可用特性,生产环境建议使用企业版。

2026-06-28 16:46:14 161

原创 MetaSkills :软件工程第一性原理的工业级实践

MetaSkills 的 30 次提交构建了一个相当厚的抽象层——声明式 DSL、DAG 引擎、LLM 路由、Checkpoint 机制。但每一层都保留了可观测性、可调试性、可审计性的逃生舱口。它没有假装本质困难不存在,而是用抽象把偶然困难压到极限低,然后把省下来的大脑带宽全部投入到 DAG 死锁检测、LLM 输出校验、失败分支恢复这些无法逃避的本质困难上。你不消灭狼,但你可以用更好的瞄准镜和更轻的枪,把子弹精准地送到该去的地方。

2026-06-28 16:45:23 221

原创 Linux服务器开发通用规范

从同步阻塞到Reactor,再到主从Reactor、Proactor、半同步/半异步、领导者/追随者,以及支撑协议解析的有限状态机——这些模式不是要你背下来应付面试,而是让你在面对实际问题时,能有一套“工具箱”。当你的服务器撑不住万级连接时,Reactor会帮你当你的业务逻辑阻塞I/O时,半同步/半异步会帮你当你的协议解析变得一团乱麻时,状态机会帮你当你的建连延迟成为瓶颈时,主从Reactor会帮你。

2026-06-27 20:23:28 242

原创 AI Agent 框架接金融行情数据前,先检查这 7 个工程风险

为了减少数据源差异对框架评估的干扰,本文以 TickDB 的统一接口作为示例数据接入层,展示统一行情 API 应提供的字段规范、错误码约定和符号体系。文中的工程风险,即使替换为其他符合规范的行情 API,依然需要逐项检查。解法不是"换框架",而是在 Agent 间定义数据传递契约——用 Pydantic model,不用裸 dict。无论你用哪个框架,这个契约层的原则是通用的。头的值在实测中可能是整数秒、浮点秒或日期格式(RFC 7231),当前实现覆盖了前两种,日期格式的解析逻辑是否需要额外处理?

2026-06-27 20:22:37 199

原创 Vector 选型与实战:vs OTel / Logstash / Fluentd 全维对比,及统一日志与指标管道的 AWS ECS 落地

在上百个服务的规模下,这意味着上百个潜在的出口通道——一旦某个服务被攻陷,攻击者即可直接访问日志平台。这解决了直推的可靠性问题,但自研管道的维护成本极高——格式变更、平台切换、扩容缩容都需要动这条管道,而这条管道本身往往没有足够的测试覆盖。方向是对的,但选用的工具(Fluentd、Filebeat)各自存在资源消耗大、变换能力弱或厂商绑定的问题,只是把问题推迟了而没有根本解决。这种方式解耦了写入路径,但引入了另一个问题:Agent 是厂商私有的,格式和协议均不开放,换平台意味着换掉整套 Agent 体系。

2026-06-25 19:48:31 186

原创 深度解读 AEC-Q100 Rev-J:为什么先进制程芯片的 ESD 电压降低?车规标准“放水”了?

对于传统的 40nm、90nm MCU 来说,它们的工作频率通常为几十兆到上百兆赫兹,一点点寄生电容对信号影响不大。此时大的 ESD 二极管带来的寄生电容,就像是在高速公路上铺满了减速带。如果强行设计一个在 2000V 高压下能保护如此脆弱的晶体管、同时又不能有太大寄生电容的 ESD 电路,在现有的半导体物理框架下,几乎是个“不可能的三角”。即针对 28nm 及更先进的工艺节点,或者射频芯片,AEC将 HBM 的目标值从 2000V 降到了 1000V,CDM 也降低到之前的一半甚至1/3. Why?

2026-06-25 19:47:41 228

原创 纪念使用了3年的Deepin系统

后面也尝试过 deepin v23 的正式版,但是dock栏的设计让我直接放弃,不喜欢那种类似windows的工具栏,更喜欢类似mac的dock栏。另外还有一些系统自身没有解决的问题,不如这个身份验证,当需要管理员授权时,弹出的这个身份认证既无法输入也无法关闭,就一直戳在这里。所以在更换系统之前,我觉得我要纪念一下Deepin系统,支撑我完成了很多需求,无数次帮我提高工作效率。这个是我的真爱,deepin的文本编辑器从来不用担心内容丢失,无论是重启、死机,还是直接关闭,文件都不需要保存,开机依然在。

2026-06-24 19:20:16 205

原创 【OpenClaw】通过 Nanobot 源码学习架构---(8)Tools

轮次角色动作第一轮模型决策(是否需要工具)+ 规划(调用哪个工具)应用端应用执行(实际运行工具)第二轮模型整合(基于结果生成回复)我们从的文档中也可以窥见端倪。工具 = 数据 (schema) + 处理函数映射表. 模型选一个名字, 你查表执行.TOOLS: JSON schema 字典列表, 告诉模型有哪些工具可用., 将工具名映射到 Python 函数.: 字典查找 +**kwargs分发.内层循环: 模型可能连续调用多个工具, 然后才生成文本.

2026-06-24 19:18:36 169

原创 ROS2 - 智能车走马观碑组Gazebo仿真环境模型搭建

我们可以先创建工程目录,创建目录car_ws;car_ws/├── src/│ ├── car_description/ # 功能包1:机器人URDF模型│ ├── car_gazebo/ # 功能包2:Gazebo仿真│ └── car_vision/ # 功能包3:视觉算法在ROS的开发规范中,src/下的每个子目录叫功能包(Package),而不是独立项目。它们共同组成一个完整的机器人项目。功能包职责修改频率小车的物理模型(尺寸、颜色、传感器位置)低(硬件确定后很少改)

2026-06-23 17:20:35 200

原创 一、环境配置(按照开发手册配置即可)

当你告诉Agent“帮我查一下北京明天的天气”时,Agent的大脑会分析这句话,然后决定调用一个“查询天气”的技能。这个技能本质上通常是一个API接口或一段函数代码。Skill = 描述(告诉Agent这是什么)+ 代码(真正执行的动作)无论使用哪种开发框架(如LangChain, AutoGen等),定义一个Skill通常只需要关注三个核心要素:●技能名称:一个简短的英文标识,比如。●技能描述:这是最重要的一环!你需要用自然语言告诉Agent这个技能是干什么的,以及什么时候该用它。●参数定义。

2026-06-23 17:19:30 182

原创 MAF的Agent管道详解-03]连接LLM的IChatClient对象

对象在调用LLM的时候,提供的请求和响应内容是什么样子的。下面的代码模拟了一个Agent内部的执行流程(ReAct循环),我们使用这个Agent来根据苏州的天气给出一些着装建议。对象采用基于文本补全的无状态的Completion API来与模型进行交互,如果需要采用有状态的Responses API,需要调用。对象来获取LLM的最终回复。是一个与OpenAI的API进行交互的客户端,我们可以指定模型名称调用其。来获取苏州的天气信息,所以响应消息的内容列表会包含一个。从注册的工具列表中找到对应的工具。

2026-06-22 20:48:06 233

原创 模板方法模式实战:重构Agent工具审批,告别重复代码

在软件设计模式中,模板方法设计模式是一种行为型设计模式,其核心思想是在抽象类中定义一个算法的骨架(即模板),并将某些具体的实现步骤延迟到子类去完成。

2026-06-22 20:47:05 266

空空如也

空空如也

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

TA关注的人

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