自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在高并发分布式系统中生成全局唯一Id

### 六、总结全局唯一ID生成是分布式系统的基础设施之一,设计时需要从唯一性、性能、可用性、趋势递增等多个维度权衡。在实际项目中,建议根据团队技术栈和业务需求灵活选择,也可以将多种方案结合(例如用Snowflake生成核心订单ID,用Redis生成日志ID)。当多个服务节点同时写入数据时,如果依赖单一数据库的自增ID,不仅会产生性能瓶颈,还会导致ID冲突。表,每次从数据库取一批ID(例如1000个)到内存中,应用层直接分配,耗尽后再去数据库取下一批。:依赖机器时钟,如果时钟回拨可能产生重复ID。

2026-08-05 15:34:29 151

原创 视错觉:从一个看似简单的自定义控件说起

作为全栈工程师,我们每天与 UI 控件打交道。但你是否想过,一个“看起来”完美居中的元素,其物理像素可能并非居中?这背后隐藏着深刻的视错觉原理。今天,我们从一道常见的面试题——自定义一个进度条控件——出发,逐步拆解那些“眼见不为实”的陷阱。### 一个“简单”的进度条:直觉与现实的差距我们先编写一个最基础的进度条。假设需求是:一个矩形背景,内部有一个填充块,宽度代表进度百分比。

2026-08-03 14:39:33 228

原创 不懂程序看的明白《黑客帝国》吗?

电影里尼奥吃下红药丸后,他看到的“绿色代码雨”就是系统最底层的渲染引擎——他不再看到“界面”,而是看到“实现”。当尼奥“看穿”矩阵时,他实际上是在“暂停”其他所有进程,只保留自己的进程在运行——这就是“实时系统”中的最高优先级抢占。—## 四、最后的“救世主”本质是“递归函数”电影第三部中,尼奥最终发现自己不是“救世主”,而是矩阵设计中的“异常处理机制”。而如果你懂一点程序,这部电影会从一部“科幻动作片”升级成一部“程序员恐怖片”——因为你会发现,自己可能就活在一个巨大的、有 bug 的递归循环里。

2026-08-03 14:38:27 153

原创 硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显

更崩溃的是,积木块无法直接编辑底层代码——你必须切换到代码模式,但切换后 AI 生成的代码是“只读”的,一旦手动修改,积木模式就乱套。的 Beta 版后,我必须承认——它在某些场景下确实“封神”,但在真实项目里,那些硬伤也让人血压飙升。最后奉劝一句:AI 生成的代码,就像自动驾驶——在高速公路上很爽,但遇到突然窜出的行人(比如你的舵机过流),它不会帮你踩刹车。作为一个每天和嵌入式代码搏斗的老兵,当朋友圈开始刷屏“硬件版Cursor”时,我的第一反应是:又一个PPT产品。更离谱的是,它的项目文件格式是。

2026-07-31 17:51:59 247

原创 AI摆摊:在 muShanghai × 观猹 AI 练摊集市的一次高密度体验

这不是普通的市集,而是一场把 AI 模型、硬件原型和开源社区打包进实体空间的「高密度」实验:每个摊位都是一个实时运行的 AI 应用,摊主们一边调试代码一边接待顾客,空气中弥漫着热熔胶和 GPU 风扇的味道。### 多模型协作:一个「AI 摊位」的完整工作流另一个让我驻足的摊位是「情绪咖啡」:顾客对着摄像头说一句话,系统判断情绪,然后推荐一款对应口味的咖啡。从量化模型的边缘推理到异步流水线,从多模型串联到降级策略,这次体验让我意识到:AI 落地的关键不是模型有多强,而是。这个简单策略让他的摊位从未冷场。

2026-07-31 17:50:33 197

原创 agent工作模式之ReAct实战

能够根据观察结果动态调整策略,不需要预设所有步骤在实际项目中,ReAct模式已经被广泛应用于:- 智能客服系统(查询数据库、调用API)- 自动化研究助手(搜索文献、分析数据)- 代码生成与调试(执行代码、分析错误信息)通过本文的实战代码,你应该已经掌握了ReAct的基本实现方法。## 进阶:让Agent更智能上面的示例虽然能工作,但还有一些可以改进的地方:### 1. 使用Function CallingOpenAI的GPT-4等模型支持Function Calling功能,可以更规范地定义工具。

2026-07-30 16:57:56 205

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

# 总结从简单的固定哈希到随机化哈希,再到全域哈希和动态重哈希,我们一步步将“坏运气”关在门外。在计算机科学的世界里,哈希表就像一把神奇的钥匙,它能将海量数据快速映射到有限的空间中。如果键值都是10的倍数,所有数据都会挤在一个槽里,这就是“坏运气”的典型例子。随机化能打破这种可预测性,让哈希函数在不同运行中表现不同,从而抵御恶意攻击和偶然的坏运气。下面是一个基于多项式哈希的实现,适合字符串键。### 使用随机种子的哈希函数我们可以创建一个带随机参数的哈希函数,每次程序启动时生成不同的哈希值分布。

2026-07-30 16:56:51 182

原创 MiniMax-M3 开源实测:部署、推理与基准测试全记录

部署简洁。

2026-07-28 18:09:42 217

原创 Hermes Agent Skill Runtime 架构拆解:让 AI Agent 不再从零开始

2026-07-28 18:08:34 189

原创 Vibe Coding 多人游戏(一)—— Pieter Levels:一个人的游戏帝国

本文将从技术角度深入剖析 Pieter Levels 的多人游戏开发实践,揭示这种“一人游戏帝国”背后的原理,并提供可运行的代码示例,让你也能复现这种高效的开发模式。## 性能优化:Pieter Levels 的“低技术”策略Pieter Levels 的多人游戏通常运行在单台 VPS 上,他采用了以下优化:1.对于独立开发者而言,Pieter Levels 的经验是一面镜子:真正的技术壁垒不在于使用多少框架,而在于能否用最直接的方式解决核心问题。:只发送变化的状态(如移动的玩家),而非全量数据。

2026-07-27 17:19:05 228

原创 Agent 工程化新底座:用 CLI 契约层打通 HTTP 接口与业务能力

但总的来说,CLI 契约层为 Agent 工程化提供了一种优雅的“中间层”解决方案,让智能体系统能够更专注于业务逻辑的实现。传统的做法是让 Agent 直接调用 HTTP API,但这就像让一个不懂路标的人开车——他也许能找到目的地,但过程充满不确定性。## 实战:构建一个订单查询的 CLI 工具让我们用 Python 来实现一个简单的 CLI 工具,它封装了订单查询的 HTTP 接口。的工程化实现,它通过标准化的命令行接口,在 Agent 和底层 HTTP 服务之间建立了一层可靠的桥梁。

2026-07-27 17:17:55 218

原创 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程

作为技术博主,我经常收到读者的提问:“这些高大上的术语到底是什么意思?”今天,我们就用最接地气的语言,把这些概念掰开了、揉碎了讲清楚。## 从“硬编码依赖”说起想象你在开发一个“通知系统”,需要发送邮件。这违反了“开闭原则”(对扩展开放,对修改关闭)。你的代码不再主动创建依赖,而是等着被框架或容器“喂”依赖。## 第三招:依赖注入(DI)依赖注入是实现控制反转的一种具体手段。## 第二招:控制反转(IoC)“控制反转”这个词听起来很玄乎,其实它描述的是。:是设计原则(高层不依赖低层,都依赖抽象)-

2026-07-26 16:09:28 154

原创 【CSS进阶】伪元素的妙用--单标签之美

在CSS世界中,伪元素(Pseudo-elements)是一类特殊的“隐形标签”,它们不占用HTML结构,却能创造出丰富的视觉效果。标签,就实现了复杂、动态的加载图标。## 高级应用:伪元素与计数器、渐变等结合随着CSS的发展,伪元素可以与更多高级特性结合,创造更强大的单标签设计。## 基础用法:装饰与美化### 示例一:用伪元素实现“下划线高亮”最常见的伪元素应用是添加装饰性线条,比如表格行或链接的下划线。元素,配合两个伪元素,创建一个常见的加载旋转图标(类似Chrome浏览器的加载环)。

2026-07-26 16:08:22 211

原创 Runtime Async - 步入高性能异步时代

awaitfn main() { // 构建自定义运行时:多线程 + 高并发模式 let runtime = Builder::new_multi_thread() .worker_threads(8) // 设置 8 个工作线程 .max_blocking_threads(100) // 允许最多 100 个阻塞线程(用于 CPU 密集型操作) .enable_io() // 启用 I/O 驱动 .enable_time() // 启用定时器 .build() .expect("运行时创建失败");

2026-07-25 17:05:43 182

原创 无意中在应用层瞥见了一个微内核的操作系统调度器

然而,在应用层编程中,我们时常会无意间复刻出类似微内核调度器的设计模式。本文将从一个常见的异步编程场景出发,逐步揭示应用层中隐藏的调度哲学,并最终用代码实现一个精简的微内核式调度器。## 总结本文从任务队列出发,逐步构建了一个应用层的微内核调度器。等,本质上都是应用层的调度器实现。## 任务队列:最简单的调度雏形让我们从最基础的模型开始:一个任务队列。这正是我们需要微内核思想的原因——让调度器能够处理“阻塞”任务,而不阻塞其他任务。## 微内核调度的核心:协作式上下文切换微内核调度器的一个关键特性是。

2026-07-25 17:04:32 206

原创 JS事件深度解析四 事件的循环和异步

# 总结事件循环是JavaScript异步编程的核心引擎,它通过宏任务和微任务的协作,实现了非阻塞的I/O处理。核心要点:1. 同步代码优先执行,微任务紧随其后,宏任务最后2. 每个宏任务执行后都会清空微任务队列3. UI渲染发生在宏任务与微任务之后4. 理解执行顺序能帮助我们写出更可预测的异步代码掌握事件循环,就像拥有一张异步世界的地图。执行规则:每执行一个宏任务,会清空当前所有微任务,然后再执行下一个宏任务。具体时机是:执行完宏任务和微任务后,在下一轮宏任务开始前进行渲染。### 宏任务与微任务-

2026-07-24 18:54:35 206

原创 当 AgentGateway 遇上 OpenClaw.NET:企业级智能体基础设施的深度协同实战

负载均衡通信标准化。

2026-07-24 18:53:30 210

原创 零基础认识大语言模型(LLM)工作原理(15.Agent Runtime:智能体真正的大脑)

Agent Runtime是智能体的"大脑",它负责协调LLM、工具、记忆和执行逻辑,让LLM从"会说话的鹦鹉"变成"能动手的助手"。单纯的LLM只能生成"好的,我查到了,明天是晴天"这样的文字,而Agent Runtime会:1. 解析用户意图2. 调用天气API获取数据3. 调用系统闹钟API设置闹钟4. 将结果反馈给用户这个过程涉及。## 代码示例2:带状态管理的Agent Runtime真实场景中,Agent Runtime需要管理更复杂的状态,比如多轮对话中的上下文、工具执行结果缓存等。

2026-07-23 16:52:45 154

原创 SpaceX 600 亿买了 Cursor,但你的代码还安全吗?

Cursor 是一个基于 AI 的代码编辑器,它不仅能自动补全代码,还能理解你的项目上下文、帮你重构代码、甚至直接根据自然语言描述生成整个函数。我们来点硬核的——当你的代码不再是手工一行行敲出来的,而是由 AI 生成并粘贴进来的,那安全风险到底在哪?特别是涉及安全敏感的操作,比如:- 用户输入处理(SQL、命令、路径)- 加密解密逻辑- 权限验证- 网络请求处理### 2. 使用代码审查工具自动扫描结合静态代码分析工具(比如 Bandit、SonarQube)来自动检测 AI 生成的代码中是否有常见漏洞。

2026-07-23 16:46:09 173

原创 从API到Agent:万字长文洞悉LangChain工程化设计

什么是LangChain?正式开始前,还是有必要从定义(What)开始。LangChain是2022年10月底,由哈佛大学的Harrison Chase发起的基于开源大语言模型的AI工程开发框架。当然也可以问一下AI:我:LangChain是什么?GPT-4:LangChain 是一个开源的语言模型工具链框架,旨在使研究人员和开发人员能够更轻松地构建、实验和部署以自然语言处理(NLP)为中心的应用程序。

2026-07-22 15:53:53 203

原创 将机顶盒改造为一台Linux开发机!

准备Linux系统和Windows系统前者作为源码编译环境,后者需要使用到进行固件烧录的软件(烧录也可以命令行形式甚至不需要Windows,需要参考海思官方文档,为了方便故在Windows平台下进行烧录)故强烈推荐在Windows平台上安装WSL准备海思的烧录软件HiTool(Windows软件)image准备烧录固件所需的USB传串口模块以及接线,其中只需要TXD, RXD, GND三条连接到板上,并准备一根网线用于向机顶盒快速发送固件程序博主使用的是CH340G,如图img。

2026-07-22 15:53:11 177

原创 图的最短路径都会写,那么最长路径呢?

最短路、path 和 walk在最短路径里,我们通常想找从�s 到�t 的一条总代价最小的路线。如果所有边权非负,Dijkstra 可以用贪心方式逐步确定当前最短的点;如果存在负权边,Dijkstra 的前提会坏掉,但 Bellman-Ford 仍然可以通过多轮松弛处理。于是看上去,最长路径也可以类似地定义:从�s 到�t,找一条边权总和最大的路线。最短路径的松弛是如果�������。

2026-07-21 15:18:09 178

原创 | 问题现象 root 用户执行正常:

它说明当前系统没有为普通用户启用 User Namespace,因此 rootless Podman 无法正常启动。之后,配置仍可能被后面的 user.max_user_namespaces = 0 覆盖,导致问题没有真正解决。Rootless Podman 依赖 Linux User Namespace。只要该值大于 0,rootless Podman 就具备继续运行的基础条件。说明 rootless Podman 已经可以正常工作。就表示 User Namespace 被禁用。

2026-07-21 15:17:17 225

原创 常用编程语言和库的正则表达式性能对比

C++ 还顺带测试了 PCRE2 的 JIT 编译器,它支持几乎所有常见 CPU 平台,甚至包括龙芯,并且可以极大提高匹配性能。一个记录了热门股票交易动态的 JSON 数据文件,大概有 500 万行,大小约 1.5G,数据按 JSON string 的形式组织。具体数据不方便发上来,自己构建一个结构类似的数据也可以实现同样的测试效果。测试时把文件内容全部读入内存,以免结果受到 I/O 的干扰。std::cerr << "无法打开文件: " << filename << std::endl;

2026-07-19 16:44:06 226

原创 Shell 环境分类(不同系统默认解释器)

Shell 基础内置命令详解常用拓展用法date # 直接输出默认格式完整时间date +%Y-%m-%d # 自定义格式:年-月-日date +%H:%M:%S # 自定义格式:时:分:秒date -s “2026-07-02 20:00:00” # root权限修改系统时间2. echo — 内容打印输出基础规则后跟多个参数,默认以空格分隔打印。

2026-07-19 16:43:17 217

原创 你的测试环境,有多久没“打扫“过了?

最终效果,我还是挺满意的,该删除的测试数据全部都删除了,之前由我人工创建的数据也全部保留下来了(没有被误删),而且整个操作几乎是在几秒钟内完成,期间没有任何人工介入的动作。如果以上场景你中了三条以上,那么今天这款 skill,你一定要了解——api-testdata-cleaner,一款能让测试数据"一键净空"的 Agent Skill。安全、精准、全场景地清理测试产生的脏数据,实现"执行前数据准备、执行中数据隔离、执行后数据清理"的全流程自动化,让环境始终处于"干净、可控、可复用"的状态。

2026-07-18 15:25:36 200

原创 附近的人功能如何设计

这样一来,附近的点,其 Geohash 前缀相同,落在 ZSET 的相邻区间,范围查询就是 ZSET 的 ZRANGEBYSCORE,时间复杂度 O(log(N)+M),非常快。或者 Geo 成员设一个“逻辑过期”时间戳在 Value 中,这里 Redis Geo 只存 member 是 user:id,不能存额外字段,所以需要另一个 key 存时间,异步清理。如果需要更高维度的组合查询,可以引入 ES 的地理位置类型,但单纯一个“附近”功能,Redis Geo 是最轻量高性能的解法。

2026-07-18 15:24:22 229

空空如也

空空如也

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

TA关注的人

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