- 博客(120)
- 资源 (2)
- 收藏
- 关注
原创 超清晰-数据结构之线性表
鸟哥说,坚持学习基础才能有出人头地的一天。不能只专注于练武功了,内功也得练。本篇文章是讲数据结构的第一篇,跟着书好好再过一篇基础。一、线性表线性表是n个数据特性相同的元素的组成有限序列,是最基本且常用的一种线性结构(线性表,栈,队列,串和数组都是线性结构),同时也是其他数据结构的基础。对于非空的线性表或者线性结构的特点:(1)存在唯一的一个被称作“第一个”的数据元素;(2)...
2018-05-25 16:37:51
39826
20
原创 小龙虾配置飞书机器人(适合本地部署)
本文介绍了如何为OpenClaw配置飞书机器人的完整流程。主要内容包括: 准备工作:确保OpenClaw已安装并具备飞书管理员权限 创建飞书应用:在开放平台注册企业自建应用,获取App ID和App Secret 配置机器人能力:启用机器人功能并添加必要权限 获取凭证:保存应用凭证和用户openid 配置OpenClaw:通过命令行或交互方式设置飞书连接 测试功能:通过脚本获取用户openid实现消息推送 整个配置过程涉及飞书开放平台操作、权限管理和OpenClaw服务配置,最终实现OpenClaw与飞书机
2026-03-18 14:04:59
612
原创 养虾日记-支持小龙虾网上冲浪
OpenClaw技能(Skill)是其核心扩展机制,相当于浏览器插件或手机App。每个技能都是独立模块,包含功能脚本、使用说明和配置方法,可用于信息获取、业务操作、自动化任务和工具集成。技能通过SKILL.md文件定义触发条件和使用规范,与MCP协议配合工作:MCP提供标准化工具调用能力,而技能封装具体任务流程。 开发技能需创建目录结构,编写SKILL.md说明文档和Python执行脚本。安装可通过SkillHub、Git仓库或手动安装方式。以百度云搜索技能为例,需获取API密钥并配置环境变量,技能安装后可
2026-03-12 00:15:08
394
原创 手把手教你如何部署小龙虾
2026年,OpenClaw 凭借强大的实用性迅速崛起,72小时斩获6万+ GitHub Stars,目前星标已突破18万,成为AI Agent领域的热门开源工具,甚至带动Mac Mini全球热销。但很多新手在部署过程中容易遇到瓶颈——对终端命令陌生、配置步骤混淆,最终半途而废。本文聚焦Mac系统,以“易懂不生硬、专业不晦涩”为原则,避开网上千篇一律的模板化表述,不管你是电脑小白,还是刚入门的开发者,跟着步骤操作,即可完成部署,轻松上手这款“能动手执行”的AI智能体。
2026-03-09 23:00:53
523
原创 架构学习之旅-架构设计三大原则
架构设计应遵循三大核心原则:简单、合适和演化。简单原则强调在满足需求的前提下选择复杂度最低的方案,避免过度设计带来的维护成本。合适原则指出架构需要匹配团队资源、技术积累和业务场景,而非盲目追求业界领先。演化原则表明架构应随业务发展持续迭代优化,而非试图一步到位。这三大原则共同指导架构师在复杂环境中做出务实决策,平衡短期需求与长期发展。
2025-10-08 18:50:20
673
原创 架构学习之旅-架构设计的复杂度来源
摘要 本文探讨了系统架构复杂度的主要来源,包括高性能、高可用、可扩展性、低成本、安全性和规模等方面。在高性能部分,分析了单机架构中进程和线程的调度机制,以及集群架构中的任务分配和通信模式。高可用性通过冗余实现,包括计算高可用和存储高可用,并讨论了状态决策的三种方式。可扩展性强调预测变化和灵活应对,提出了变化层与稳定层的设计原则。最后指出,架构设计需要在各种约束条件之间权衡,以构建高效、稳定且适应性强的系统。
2025-10-05 01:30:16
1214
原创 架构学习之旅-架构的由来
本文介绍了4R软件架构模型及其历史背景。4R架构由Rank(分层结构)、Role(角色)、Relation(关系)和Rule(规则)组成,分别对应系统分层、功能角色、角色交互和协作规则。文章还梳理了架构设计的发展历程:从机器语言到高级语言,再到结构化程序设计和面向对象编程,每次演进都是为了解决当时软件开发的瓶颈问题。作者强调,架构设计的本质目的是解决系统复杂度带来的问题,而非所有系统都需要架构设计,应避免过度设计。正确的架构设计应能清晰描述系统角色及其关系,为开发提供有效指导。
2025-10-04 15:23:18
649
原创 手把手教你私有化部署大模型并接入dify
Ollama 是一个开源的大语言模型(LLM)运行框架,主要用于在本地设备上便捷地部署和运行大型语言模型。核心目标:降低用户使用大模型的门槛,同时保障数据隐私。本地部署:支持在 Windows、MacOS、Linux 等系统本地运行模型,无需依赖云端,数据交互全程在本地完成,适合对数据敏感的场景。使用便捷:通过命令行工具即可完成模型的下载、运行和管理,也提供了类似 OpenAI API 的接口,方便开发者集成。
2025-06-19 09:54:44
1332
原创 手把手教你部署一个dify平台
Dify是一款开源大语言模型应用开发平台,融合BaaS与LLMOps理念,支持低代码开发、多模型兼容,适用于构建各类AI应用。与Coze相比,Dify更侧重专业开发者的高度定制化需求,支持私有化部署和本地模型集成。私有化部署步骤包括:1)选择服务器(如幕僚云平台);2)安装Docker并配置镜像源;3)克隆Dify仓库并修改配置;4)通过Docker Compose启动服务;5)通过公网IP访问部署好的平台。该方案既可云端部署也可本地运行,降低了AI应用开发门槛。
2025-06-19 09:53:56
1893
原创 如何思考?分析篇
现代人每天刷 100 条信息,却难静下心读 10 页书。前言:我一直把思考当作一件生活中和工作中最为重要的事情。但是我发现当我想写一篇跟思考有关的文章时,却难以下手。因为思考是一件非常复杂的事情,用文字描述十分的困难。
2025-06-07 18:07:02
1298
原创 Ai学习之LangChain框架
LangChain 是一个用于开发由大型语言模型(LLMs)驱动的应用程序的开源框架。它提供了标准接口、工具和抽象,帮助开发者更高效地构建和部署与 LLM 相关的复杂应用,而不必从头开始处理所有底层细节。其本质上就是基于大模型研发的框架,可以大大降低开发者的开发工作量。核心价值说明抽象与模块化将 LLM 应用拆解为可复用组件(模型调用、提示词管理等),通过统一接口降低开发复杂度。链式处理(Chains)
2025-05-20 21:18:10
742
原创 Ai学习之openai api
OpenAI API 是由马斯克投资的 OpenAI 公司提供的人工智能接口,旨在推动人工智能技术的发展并确保其安全性和通用性。OpenAI 在自然语言处理领域取得了显著成就,尤其是 GPT 系列模型,如 GPT-3 和 GPT-4,这些模型在文本生成、翻译等任务中表现出色。ChatGPT 是基于 GPT 模型的网页应用,而 OpenAI API 则为开发者提供了标准接口,使其能够利用大模型实现各种功能。API 支持多种功能,如文本生成、语音转文本、图像生成等,并通过不同的路径进行区分。接口的核心参数包括模
2025-05-20 21:17:06
1498
原创 Ai学习之LLM
可以把LLM当作一个知识特别渊博的大博士,他经过海量文本数据的训练,这些文本就像是给它 “喂” 的知识,他脑子里有超级多的神经元(参数),因此他学富五车,你可以通过他帮你写作,解答问题,文本翻译等。但是他和普通人一样,也会一本正经的胡说八道(幻觉),但是绝大多数场景他都可以帮你解决,是你工作中生活中必不可少的工具。知识丰富拥有海量的知识,可以回答各种类型的问题,涉及的领域也非常广泛,包括历史、文化、科学、技术等诸多方面。知人晓事能够根据上下文理解人们的意图和兴趣,提供个性化的回答和解决方案。
2025-05-11 17:31:52
1196
原创 Go怎么做性能优化工具篇之基准测试
在 Go 中,基准测试是通过创建以Benchmark开头的函数,并接收一个 *testing.B 类型的参数来实现的。testing.B 提供了控制基准测试执行的接口,比如设置测试执行的次数、记录每次执行的时间等。每个基准测试函数都必须接受一个 *testing.B 类型的参数。函数体内通过b.N来控制基准测试的执行次数,Go 会自动调整 b.N 的值,确保每次基准测试运行的时间足够长。import ("testing"// 基准测试函数// 这里是测试的代码,每次循环 b.N 次。
2024-12-22 18:04:46
1069
原创 Go怎么做性能优化工具篇之 trace工具
trace 是 Go 语言的一个非常强大的性能分析工具,它用于追踪和记录 Go 程序的执行过程。与 CPU 和内存性能分析工具(如 pprof)不同,trace 侧重于在时间维度上分析程序的行为,帮助开发者理解程序执行中的时间分布、并发和调度等方面的细节。
2024-12-22 18:03:31
1706
原创 聊聊系统的弹力设计-服务器性能指标篇(一)
弹性,大家可以轻易的联想到橡胶,可伸缩性是弹性机制的一个很重要的特点,但是实际上弹性不等同于可伸缩性弹性(Elasticity) 通常指的是系统能够自动适应负载的变化,即自动扩展和收缩资源。可伸缩性(Scalability) 则侧重于系统能够通过增加或减少资源来处理更大规模的负载,通常是指静态扩展或手动扩展的能力。我们可以看出,弹性强调动态响应负载波动,而可伸缩性则强调在需求增长时能够提供更大的处理能力,两者的概念是完全不同的。而动态调整,则是系统设计中最为关键的部分。
2024-12-08 18:08:01
1661
原创 多级缓存设计实践
CPU 多级缓存(,简称)是为了提高 CPU 访问内存的速度而设计的一种缓存层次结构。由于直接从主内存读取数据的速度相对较慢,因此,现代 CPU 采用了多级缓存来加速数据访问,减少访问内存的延迟。
2024-12-02 19:01:35
1875
原创 团队管理-如何组织好一场会议
很多人在讨论问题的时候,不经意会提到另一个问题,然后就兴高采烈的去讲新的问题,这个时候,组织者要识别到新问题是不是和本次会议有关,如果无关或者不会阻塞本次会议的主要问题,那就及时让其停止,回到原本的问题上来,组织者一定要果断、大胆,敢于正确的打断,最好的方式就是等其把一句话讲完之后,再打断,避免话说到一半,你就不让他讲了,这样对参与者是不大尊重的。3、如果你是管理者,你可以减少一些不必要的会议主持,尤其是形式主义的会议,能少开就少开,也可以轮流让成员去主持会议,你来辅导。
2024-02-06 17:18:44
3183
原创 团队管理-如何提高员工积极性
3、工作主动性,是否主动的承担一些工作职责,不排斥额外工作。2、问题解决,处理问题的态度是否积极,效率是否提高。1、迭代工作交付量,单位时间内完成的工作内容。
2024-01-31 09:50:17
3198
原创 GO并发编程基础- 如何使用channel
通道,顾名思义,使用来传递数据信号的,和队列类似,有发送端和接收端,也是先进先出的数据结构,通常是在不同的goroutine做通信处理,结合select,是GO并发编程中的武功秘籍。
2022-07-19 21:34:49
480
原创 一文让你理解GO的数组和切片的本质
Go 的数组,其实和C的数组没有什么区别,同样有着以下的特点:上面是一个长度为9的整形数组。在内存是连续的存储空间。在我们定义一个数组之后,其中所有的元素值都会是该类型的零值。因此我们无法判定我们存的就是零值还是初始化给的零值,但其实这并不重要。使用数组的好处和坏处都显而易见。数组可以节省空间,不像链表和其他数据结构,需要额外存储其他的标识。而且他很简单,作为基础数据结构之一,他简单而朴实无华,在一些指定的场景中,发挥着很大的作用。指定下标 访问元素 O(1) 的时间复杂度,又让他很快。但是人不完人,
2022-07-03 15:41:13
498
原创 排序算法详解(一)Go
生活中经常有需要我们排序的栗子,比如说成绩排名,按照分数从高到底排序,对绝大多数程序员来说,排序算法可能是学过的第一种算法,但是不同的排序算法是存在差异的,有的算法花费时间很长,有的算法花费空间很多,就好比我们的代码质量,不同的算法得到的程序性能是不一样的。因此我们要学习下优秀的算法,用一种更合适的方式去处理问题。主要是有以下几类指标。指的是在一个算法在最好的情况下的执行效率,比如说要排序的数组刚好是已经有序的,要吃饭的时候刚好外卖到了。当然这是理想状态下,不可强求。指的是在最糟糕的情况下,执行这段代码的时
2022-06-05 17:37:42
340
1
原创 Go命令行实现工具- flag大法详解
一、flag 是什么东西?对于很多语言,都支持用命令行执行。例如 PHP 支持用PHP命令 解析PHP脚本语言,Java 支持用 Java命令编译 Java代码,golang 也支持用 go 命令编译执行。既然都支持用命令行执行,但是命令行又不像web 页面那样有输入框给我们填充参数,那么怎么让程序可以读取我们输入的值呢?为了解决这样的问题,golang 为此提供了 flag 标准库。它的主要功能是实现命令行参数的解析。二、flag 入门?我们简单举一个简单的例子:package main
2021-12-04 21:55:23
2381
原创 数据库编程两大神器-存储过程和函数
一、什么是过程化sql1.基本概念:基本的sql 都是高度非过程化的语言,过程化sql 是对SQL 的拓展,使其增加了过程化语句功能,过程化sql 程序的基本结构是块。所有的过程化SQL都是由块组成的。这些块可以相互嵌套,每个块都可以单独完成一个逻辑操作。例如:declareset ... /*定义部分*/ ... /*执行部分*/ begin sql语句、过程化SQL的流程控制语句 exception 异常处理部分 end;2.过程化sql的两种形式过程
2021-09-12 21:51:47
624
1
原创 手把手教你微信第三方平台开发
本文适合想接入第三方平台开发的同学,通过真实经验大致讲解一下相关业务,建议收藏以备不时之需。一、什么是微信开放平台微信开放平台地址微信开发平台实际上就是给微信外部人员提供微信能力的平台,我们可以在这个平台创建相关的应用,管理对应的认证、授权信息,然后通过开放接口对接微信提供的种种能力。其中,账号的申请需要公司主体的相关信息。二、如何接入微信第三方平台的开发2.1 注册开放平台账号注册账号需要邮箱(这个邮箱贼恶心,不能是微信绑定过的,也不能是公众号平台绑定的,小程序平台绑定的也不行),.
2021-09-07 00:20:54
9746
1
原创 用docker五分钟快速搭建Redis小集群
一、用docker 快速配置Redis 集群1. 查询最新的镜像docker search redis2.下载镜像docker pull redis3.起三个容器docker run --name redis-6379 -p 6379:6379 -d redisdocker run --name redis-6380 -p 6380:6379 -d redisdocker run --name redis-6381 -p 6381:6379 -d redis4.查看容器启动情况
2021-09-02 08:18:54
271
1
原创 Redis挂了,我的数据还能恢复吗(二)?
一、前言我们在上一篇文章聊到了 redis 通过 aof 机制确保了数据的可靠性,但是 aof 日志记录的其实是操作过的命令,并不是实际数据本身,通过 aof 日志进行恢复需要消耗较多的时间,因为每个命令都要执行一遍。这个时间基本上和 aof 日志的大小成正比,如果数据量不大,那倒是无所谓,但是如果数据量特别大,恢复数据的时间可就长了,那么 redis 的团队难道就没考虑到这种情况吗?当然考虑到了,所以才有了 RDB 机制。二、什么是 COW 机制写时复制技术,实际上是linux 系统提供的一种内存优
2021-08-29 19:44:04
2402
原创 Redis挂了,我的数据还能恢复吗(一)?
一、内存和磁盘的区别计算机的CPU只能读取内存里的东西,无法直接磁盘读取数据。因此程序和数据必须先从磁盘中读取到内存中,才能被CPU使用。电脑硬盘作为计算机最主要的存储设备,具有比较稳定的数据存储能力,又称之为外存,从介质上来区分,可分为 SSD (固态硬盘) 和 HD (普通磁盘),SSD 主要是利用电子来存储数据,而 HD 是利用磁性来存储数据,相对来说,SSD IO 相对较快,但是比较贵,而 HD 相对速度慢,容易损坏,但是价格便宜。内存用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数
2021-08-28 10:00:43
848
原创 数据结构之散列表
一、什么是散列表散列表又称哈希表,这种数据结构提供了键和值的映射关系,只要给出一个 key, 就可以高效查找到它所匹配的 value,时间复杂度接近️ O(1)举个例子,在读书的时候,我们每个人都有一个学号,一个学号对应一个学生。学号可以当作一个key, 学生名字就是一个value。二、哈希表的作用在日常开发中,我们经常会用到哈希表,如 redis 缓存,PHP 的关联数组,go 的 map 等。再比如说,假设我们要统计一份名单中,每个名字出现的重复次数,那么我们就可以建立一个简单的哈希表,ke
2021-08-14 22:46:42
1289
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅