- 博客(229)
- 资源 (2)
- 收藏
- 关注
原创 什么是RADIUS认证
RADIUS 就是网络世界的"门卫系统"——用户来了先查身份证(认证),查完发门禁卡决定能去哪些房间(授权),全程记考勤算费用(计费),还能中途改权限或直接把人轰走(CoA/DM)。协议简单、扩展强、所有设备都支持,所以三十多年了依然是网络接入认证的绝对霸主。
2026-05-09 17:29:48
345
原创 LDAP是什么
LDAP 是"专门查人的轻量级电话簿",数据库是"万能的业务数据仓库"。认证、组织架构、权限管理用 LDAP(快、准、天然匹配);订单、支付、日志用数据库(灵活、强事务、支持复杂查询)。企业里通常两个都用——LDAP 管"你是谁",数据库管"你干了什么"。LDAP 使用三步走:①装服务器(OpenLDAP) → ②导入数据(LDIF 文件) → ③客户端连接查询(ldapsearch / Python ldap3 / Spring LDAP)。
2026-05-09 17:21:03
210
原创 本机抓包实验
i Io 表示在本地换回设备上抓包, -nn的第一个n表示不用做dns转换,第二个n表示端口显示为数字,而不是 http、snmp、sftp等协议名。可以通过nc工具(或busybox nc)模拟报文发送和报文监听。有时,为了定位问题,需要先测试一下抓包工具、抓包方法、信息显示等。注意:busybox的nc比较简陋,只能收到第一个udp消息。-X 表示 报文内容 16进制和ASCII码同时显示。-s 0 表示最大抓包长度是0,即不截断,全部抓。方法2 bash可以给模拟的udp设备发送报文。
2026-04-27 10:29:01
42
原创 从零开始动手实现 Claude Code
的 AI Agent 工具,共计 12 节课,每节课都有一个可运行的 Python 文件。内容从最基础的 Agent 循环,逐步叠加工具调用、任务规划、子智能体、上下文压缩、多智能体协作和自主执行等功能,最终构建出一个完整的 AI Agent 系统。从零开始动手实现 Claude Code。该项目是讲解如何从零构建类似。
2026-04-24 22:34:51
26
原创 OpenSpec 和 Spec-Kit
OpenSpec 和 Spec-Kit 都是规范驱动开发(SDD)领域的优秀工具,旨在通过编写规范来指导 AI 生成高质量代码。然而,它们在设计哲学、工作流程和适用场景上存在显著差异。简单来说,Spec-Kit 像一位严谨的架构师,追求流程的完整性和可控性;而 OpenSpec 则像一位敏捷的工程师,追求快速迭代和极简主义。以下是两者的详细对比:📊 核心差异速览对比维度 Spec-Kit OpenSpec核心哲学 深度规范驱动,强调门控流程和详尽文档。
2026-03-30 22:42:12
768
原创 理解npm的原理
npm(Node Package Manager)是JavaScript生态中最流行的包管理工具,用于管理项目的依赖关系、安装第三方库以及发布自己的模块。中的版本范围,选择符合条件的最高版本。依赖树结构通过递归解析生成,确保所有子依赖的版本兼容性。文件定义项目元数据和依赖关系,npm根据该文件自动下载并安装所需模块。npm使用语义化版本(SemVer)规范管理依赖版本。安装依赖时,npm会解析。理解npm的原理有助于更好地管理项目依赖、优化构建流程并解决常见问题。)的模块存储在系统目录,供所有项目共享。
2026-01-17 17:24:51
365
原创 运行调试大语言模型
例如使用Hugging Face的Transformers库, 在cpu下也可以调试。代码: 上面只是模型的权重,词表等文件,代码是在transform库中的。很多LLM是开源的,是可以自己下载模型,运行调试的。首先,查找模型的class名称。然后在python 包中找这个类。
2026-01-10 16:32:29
183
原创 linux中mount的本质是什么?自己如何实现一个伪文件系统
Linux中mount的本质与伪文件系统实现 mount的本质 Linux中的mount本质是将一个文件系统挂载到目录树的某个位置,实现文件系统的访问集成。它通过内核VFS层将存储设备、网络位置或虚拟文件系统连接到主目录结构,使不同来源的数据统一呈现为单一目录树。mount操作涉及文件系统驱动加载、路径重定向和资源管理。 实现伪文件系统 使用FUSE可在用户空间快速开发伪文件系统(如显示动态内容的虚拟文件系统)。实现步骤: 安装FUSE开发库(如libfuse3-dev) 编写C代码定义文件系统操作(get
2025-10-15 19:39:34
897
原创 claude code + GLM模型 入门
8、输入编程命令,比如 请编写logutil.py 就可以看到claude自动生成了logutil.py文件。# 运行命令 `claude` 即可进入 Claude Code 交互界面 claude。4、查看自己的apikeys,增加一个用于编码的key,比如名称叫 coder。7、claude会打印欢迎词,然后让你们选择颜色风格(默认选dark即可)使用 `cd` 命令导航到您的项目 cd your-project。# 创建您的工作目录,例如 `your-project`,6、打开claude。
2025-10-06 12:31:55
775
原创 k8s网络原理
K8S中跨节点Pod通信通过Flannel的VXLAN实现:Node间建立虚拟隧道,Flannel在每个节点创建flannel.1网卡并配置路由规则,将目标Pod网段流量导向该接口。内核通过ARP表获取目标Pod网关MAC地址,再查询FDB表确定远端Node物理IP进行VXLAN封装。FDB表是Linux原生VXLAN机制的核心组件,记录MAC到VTEP IP的映射,由Flannel动态维护。这种设计实现了Overlay网络下Pod的无缝通信。
2025-09-06 22:43:19
1384
2
原创 SSE的实现
服务器推送事件(SSE)是一项技术,允许服务器向浏览器推送实时更新。通信协议:使用 HTTP。EventSource 对象:在浏览器端的 JavaScript 中可用。SSEWebSocket基于 HTTP基于 TCP单向通信(从服务器到客户端)双向通信(全双工)轻量且简单更复杂内置重连和消息追踪功能需要手动实现这些功能支持文本或 Base64 编码并压缩的二进制数据支持各种数据类型支持自定义事件类型不支持自定义事件类型限制在 HTTP/1.1 或 HTTP/2 连接数上。
2025-08-13 23:39:59
906
原创 python asyncio
除了asyncio.gather(), asyncio.sleep(), 还有 asyncio.wait(), asyncio.wait_for()await异步等待函数返回, 必须写在在 aysnc内。如下,多个协程可以并行。
2025-07-01 22:17:35
263
原创 AI问答:开发一个最简单的spingboot web工程,用starter和不用starter,我们的代码有哪些具体的区别?
使用 Spring Boot Starter 可以显著简化开发过程,减少配置和依赖管理的复杂性。而不使用 Starter 则需要手动处理更多细节,适合需要深入理解底层原理或特殊定制化需求的场景。对于大多数开发者来说,推荐使用 Starter 以提高开发效率。在开发一个最简单的 Spring Boot Web 工程时,使用 Starter 和不使用 Starter 的核心区别在于依赖管理和项目配置的简化程度。
2025-06-01 11:16:08
1003
原创 Angular开发经常涉及到组件间传递参数,用原生js开发时,如何解决这些问题?
数据流:通过函数参数或属性传递数据。事件流:通过回调函数或自定义事件实现通信。状态共享:通过全局对象或事件总线管理跨组件状态。虽然原生实现需要更多手动管理,但能深入理解框架背后的设计原理。对于复杂项目,建议逐步引入框架以提高开发效率。
2025-04-26 10:16:25
461
原创 chromadb
collection.query(query_texts="美食",n_results=2,where_document={"$contains":"西安"})--设置返回的记录数,根据文档内容过滤。collection.query(query_texts=['hello'],include=['embeddings']) --显示embeddings。documents=["北京的旅游景点很多", "西安有很多大学"],documents=["北京的旅游景点很多", "西安有很多大学"],
2025-04-05 20:19:51
1235
原创 大语言模型训练讨论
小A:deepseek、千问、文心一言、kimi、chatgpt、grok、gemini、llama这些大模型,无法回答公司私有知识,行业专有知识,怎么才能教会大语言模型呢?小C:自己训练,数据质量很重要,数据中最好不要有重复数据(比如一篇文章,放了多份), 数据密度要高(新闻平面的数据密度可能要第一些)。小B:可以在已经开源的模型上进行增量预训练(continue pretrain),精调(Fine tuning)。
2025-03-01 13:58:22
183
原创 LLM 学习2
一般来说,训练时用4k长度训练,那么推理时,4k以内的长度效果肯定是有保障的。8k以内的话,可以通往一些技术,如位置编码扩展等技术,让准确性基本不降低,或者降低幅度较小。超过训练长度太多,准确性就降低比较大了。重点要理解,LLM的结构参数中,是不包含context长度的,所以不够输入token多少,都是可以计算的。只是对运算量和准确性有影响。另外,一般情况下,训练和推理的运算量与长度的平方成正比例。有一些技术可以改善这方面。
2025-02-19 23:39:39
407
原创 通过命令学习k8s
20、kubelet,kube-scheduler-k8s-master、kube-controller-manager-k8s-master、kube-proxy-s8v4t 是如何找到 知道kubeapiserver的接口地址的呢?curl 127.0.0.1:8080/api/v1/namespaces/kube-system/pods/kube-scheduler-k8s-master --查看 某个命名空间下的某个pod。---然后可以通过curl访问 api接口。
2024-11-10 16:21:59
1523
1
原创 LLM和AI agent
一文搞懂大模型!基础知识、 LLM 应用、 RAG 、 Agent 与未来发展-CSDN博客Agent教程: 从零基础快速掌握Agent开发流程与通用开发范式_慕课手记
2024-09-01 09:17:10
595
原创 制作一个不依赖任何基础镜像的docker镜像
扩充hello-world程序,还是要好烦一些时间的,我们拷贝一个功能强大一些的程序吧,就用busybox了。#./busybox ls --打印当前目录下的文件和目录清单, 就是自己实现了一个简化版的ls命令。4、我们可以扩充一下这个hello-world程序的功能,让它变得更强大。#./busybox sleep 3600 --自己实现的sleep命令。#docker images ---看一下新作的这个镜像。#./busybox --打印这个程序的使用说明。
2024-08-04 21:24:08
760
原创 部署k8s
安装过程中遇到最大的问题是,flannel的镜像无法下载,虽然设置了阿里云的mirror。但这个镜像,在阿里云的镜像中可能没有,必须去docker.io下载,始终无法下载成功。安装完操作系统(使用NAT网络)后,查看当前的IP、网关、DNS, 然后把IP改为静态IP(包括网关、DNS)最后,重新找了一个flannel的yaml文件,这个文件的镜像是另外一个地址,这才下载成功。这个文章的好处是,指定了k8s的版本号。所以几年之后,还是可以按照这个教程安装。1、参考下面这个文章中的kubeadm进行部署。
2024-07-30 22:31:49
949
原创 go get的原理
GOPROXY=https://goproxy.cn,direct 表示先去第一个网址下载,下载不到,就直接下载。也可以配置GOPRIVATE私有仓库,遇到私有仓库中的包,就直接下载。可以写在os的环境变量中,也可以写在go的环境变量中。2、go get 可以下载git、svn等管理的源代码仓库。静态映射写死,通过后缀判断,动态询问网站。他是使用git 、svn协议去下载。他是如何知道每个仓库是什么协议呢?
2024-07-27 20:17:47
601
原创 Container 命令ctr、crictl 命令
containerd 相比于docker , 多了 namespace概念, 每个 image和 container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间。方法一、修改文件:vi /etc/containerd/config.toml。方法二、export CONTAINER_REGISTRY_MIRROR=
2024-02-04 22:09:49
3465
转载 docker save 与 docker export 的区别
详解 docker save 与 docker export 的区别_docker save export-CSDN博客
2023-11-06 21:12:03
212
原创 k8s中的有状态,无状态,pv、pvc等
一般PostgresSQL、ftp、VictoriaMetrics 等服务如果要在K8S中部署,都需要自己开发operator。
2023-09-10 18:02:56
675
原创 Linux - 如何启动进程、线程
2、老的linux中,fork()就是最底层的接口了。现代Linux中,fork()是通过 clone()这个系统调用实现的。其实也有各自的真实pid,但由结构隐藏了,对外的pid为主进程的pid。(char *command)函数包装了fork(), execve()两个系统调用,我们可以直接使用system()函数函数了。2)操作系统对线程的管理,实则就是对进程的管理。5)线程对操作系统来说就是进程,因此对信号的处理是以进程为单位分发的。7)系统管理线程的瓶颈:所有线程由管理线程管理。
2023-09-10 17:20:01
592
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅